तंत्रिका नेटवर्क के लिए छवियों को कैसे तैयार / संवर्धित करें?


41

मैं छवि वर्गीकरण के लिए एक तंत्रिका नेटवर्क का उपयोग करना चाहूंगा। मैं पूर्व-प्रशिक्षित कैफनेट के साथ शुरू करूँगा और इसे अपने आवेदन के लिए प्रशिक्षित करूँगा।

मुझे इनपुट छवियों को कैसे तैयार करना चाहिए?

इस मामले में, सभी चित्र एक ही वस्तु के होते हैं लेकिन विविधताओं के साथ (सोचते हैं: गुणवत्ता नियंत्रण)। वे कुछ अलग-अलग पैमानों / संकल्पों / दूरियों / प्रकाश व्यवस्था की स्थिति में हैं (और कई मामलों में मुझे पैमाने का पता नहीं है)। इसके अलावा, प्रत्येक छवि में ब्याज की वस्तु के आसपास एक क्षेत्र (ज्ञात) होता है जिसे नेटवर्क द्वारा अनदेखा किया जाना चाहिए।

मैं (उदाहरण के लिए) प्रत्येक छवि के केंद्र को काट सकता था, जिसे ब्याज की वस्तु का एक हिस्सा और अनदेखा क्षेत्र में से कोई भी शामिल करने की गारंटी है; लेकिन ऐसा लगता है कि यह जानकारी को फेंक देगा, और परिणाम भी वास्तव में समान पैमाने (शायद 1.5x भिन्नता) नहीं होंगे।

डेटासिट वृद्धि

मैंने यादृच्छिक फसल / दर्पण / आदि द्वारा अधिक प्रशिक्षण डेटा बनाने के बारे में सुना है, क्या इसके लिए एक मानक तरीका है? क्लासिफायर सटीकता के लिए यह कितना सुधार करता है पर कोई परिणाम?

जवाबों:


35

तंत्रिका नेटवर्क के साथ विचार यह है कि एल्गोरिथ्म द्वारा भारी उठाने के बाद से उन्हें थोड़ा पूर्व-प्रसंस्करण की आवश्यकता होती है जो कि सुविधाओं को सीखने के प्रभारी हैं।

डेटा साइंस बाउल 2015 के विजेताओं के पास उनके दृष्टिकोण के बारे में एक शानदार लेखन है, इसलिए इस उत्तर की अधिकांश सामग्री से लिया गया था: गहरे तंत्रिका नेटवर्क के साथ प्लवक को वर्गीकृत करना । मेरा सुझाव है कि आप इसे पढ़ें, विशेष रूप से पूर्व प्रसंस्करण और डेटा वृद्धि के बारे में

- छवियों का आकार बदलें

विभिन्न आकारों, संकल्पों या दूरियों के लिए आप निम्न कार्य कर सकते हैं। आप बस एक निश्चित लंबाई के लिए प्रत्येक छवि का सबसे बड़ा पक्ष पुनर्विक्रय कर सकते हैं।

एक अन्य विकल्प ओपनसीवी या स्किपी का उपयोग करना है। और यह 100 कॉल (चौड़ाई) और 50 पंक्तियों (ऊंचाई) की छवि का आकार देगा:

resized_image = cv2.resize(image, (100, 50)) 

फिर भी एक अन्य विकल्प स्काईपी मॉड्यूल का उपयोग करना है, का उपयोग करके:

small = scipy.misc.imresize(image, 0.5)

- डेटा ऑगमेंटेशन

डेटा ऑगमेंटेशन हमेशा प्रदर्शन में सुधार करता है, हालांकि राशि डेटासेट पर निर्भर करती है। यदि आप डेटा को संवर्धित करना चाहते हैं, तो डेटासेट के आकार को कृत्रिम रूप से बढ़ाने के लिए आप निम्न कर सकते हैं यदि मामला लागू होता है (यह लागू नहीं होगा यदि उदाहरण घरों या लोगों की छवियां थीं जहां आप उन्हें 180 डिग्री से घुमाते हैं तो वे सभी जानकारी खो देंगे लेकिन नहीं अगर आप उन्हें एक दर्पण की तरह फ्लिप करते हैं):

  • रोटेशन: 0 ° और 360 ° (वर्दी) के बीच के कोण के साथ यादृच्छिक
  • अनुवाद: -10 और 10 पिक्सल (वर्दी) के बीच बदलाव के साथ यादृच्छिक
  • rescaling: 1 / 1.6 और 1.6 (लॉग-वर्दी) के बीच बड़े पैमाने पर कारक के साथ यादृच्छिक
  • flipping: हाँ या नहीं (बर्नौली)
  • बाल काटना: -20 डिग्री और 20 डिग्री (वर्दी) के बीच के कोण के साथ यादृच्छिक
  • स्ट्रेचिंग: 1 / 1.3 और 1.3 (लॉग-वर्दी) के बीच खिंचाव कारक के साथ यादृच्छिक

आप डेटा विज्ञान के कटोरे की छवियों पर परिणाम देख सकते हैं।

पूर्व-संसाधित छवियां

पूर्व-संसाधित छवियां

एक ही छवियों के संवर्धित संस्करण

यहाँ छवि विवरण दर्ज करें

-अन्य तकनीक

ये प्रकाश जैसी अन्य छवि गुणों से निपटेंगे और पहले से ही मुख्य एल्गोरिथ्म से संबंधित हैं जैसे कि एक साधारण प्री-प्रोसेसिंग स्टेप। UFLDL ट्यूटोरियल : पर पूरी सूची की जाँच करें


1
रंग भी डेटा वृद्धि के लिए देखने लायक है।
डेविड सी। बिशप

क्या आप रोटेशन और शीयरिंग आदि के लिए भी कोड साझा कर सकते हैं ?? @wacax
शस्त्रागार कट्टरपंथी

आप लोग डेटा वृद्धि के लिए केरस जैसे पैकेज का उपयोग कर सकते हैं।
रिकार्डो क्रूज़

2
किसी को भी scipy.misc मॉड्यूल के आयात की समस्या है। आपको करने की आवश्यकता है import scipy.miscstackoverflow.com/questions/13581593/…
११:४० बजे ०६

छवि के आकार बदलने के लिए, आमतौर पर कला विधियों की स्थिति में किस विधि का उपयोग किया जाता है, जैसे कि ImageNet पर उपयोग किए जाने वाले?
हैलोगूडीबाई

2

हालांकि वैक्सैक्स का उत्तर पूर्ण और वास्तव में व्याख्यात्मक है, मैं इस मामले में कुछ चीजों को जोड़ना चाहूंगा जो कोई भी इस उत्तर पर ठोकर खाएगा।

सबसे पहले, सबसे scipy.miscछवि संबंधित कार्य ( imread, imsave, imresizeईआरसी) या तो के पक्ष में पदावनत हो गए हैं ImageIO या skimage

दूसरे, मैं दृढ़ता से किसी भी वृद्धि कार्य के लिए अजगर पुस्तकालय की सिफारिश करूंगा । इसका उपयोग करना वास्तव में आसान है और इसमें लगभग सभी वृद्धि की तकनीक है जिसका आप उपयोग करना चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.