تشخیص صفت در تصویر

تغییرات پروژه از ابتدا تا تاریخ 1393/08/17
`...`در سامانه‌های شناسایی[^Recognition] تصویر معمولاً سامانه باید عنوانی برای آن پیدا کند. مثلاً با دیدن تصویر زیر بگوید «هواپیما» یا «فرودگاه»:
![airplane](http://bayanbox.ir/id/5453386927743833058?view)

در واقع اکثر سامانه‌ها می‌خواهند اسم را شناسایی کنند. اخیراً سامانه‌هایی هم به وجود آمده است که به جای اسم، شناسایی صفت[^Attribute] را انجام می‌دهند. برای مثال با دیدن تصویر زیر سامانه تشخیص می‌دهد که «شاخ دارد»، «پا دارد»، «سر دارد» و ...
![wild goat](http://cache.desktopnexus.com/thumbnails/1407615-bigthumbnail.jpg)

از دیگر کاربردهای سامانه‌های تشخیص صفت می‌توان به مورد مهم صفت‌های انسان اشاره کرد. برای نمونه آیا انسان موجود در تصویر زن است یا مرد، پیر است یا جوان، عینک دارد یا خیر، لباس آستین بلند دارد یا خیر و ...

مزایای بسیاری برای این چنین سامانه‌ای می‌توان در نظر گرفت که بررسی آن‌ها را به شما واگذار می‌کنیم.

* این پروژه توسط یک بنگاه تجاری تعریف شده است.

# مقدمه
تشخیص شیء یک قسمت مهم در بینایی کامپیوتر است.تکنولوژی تشخیص تصویر  تلاش می کند که اشیاء،مردم،ساختمان ها،مکان ها و هرچیز دیگری که برای مصرف کنندگان و سرمایه گذاران مهم است را تشخیص دهد.گوشی های هوشمند و تبلت های مجهز به دوربین،این تکنولوژی را از کاربردهای صنعتی (مثل دسته بندی میوه ها)به سمت کاربردهای مصرفی برده اند.برای مثال،گوشی های هوشمند می توانند آدم ها،ماشین ها،برچسب بطری هاٰ،جلد کتاب ها و آلبوم ها و بسیاری از اشیاء دیگر را با استفاده از یک نرم افزار تلفن همراه که به نرم افزار تشخیص عکس دسترسی دارد،شناسایی کنند.تشخیص عکس کاربردهایی در امنیت،مدیریت محتوا وحتی موتورهای جستجو دارد. 
در تشخیص اشیاء در تصویر بهتر است که به جای نامگذاری اشیاء به توصیف آنها بپردازیم. قابلیت پی بردن به صفات به ما اجازه میدهد اشیاء را توضیح دهیم،مقایسه کنیم و حتی آسان تر طبقه بندی کنیم.مهم تر اینکه زمانی که با یک شیء جدید مواجه می شویم، حتی اگر نتوانیم آن را شناسایی کنیم،باز هم میتوانیم در مورد آن چیزهایی بگوئیم(بعنوان مثال "خزدار با چهارپا" نه فقط  "ناشناخته").ما همچنین میتوانیم بگوئیم در مورد یک شیء خاص چه چیزی غیر معمول است(مثلا "سگ با خال هایی روی بدنش") و یاد بگیریم که اشیاء را فقط از روی توصیف تشخیص بدهیم. همچنین میتوانیم اشیاء جدید را با مثال های دیداری کم یا بدون مثال تشخیص بدهیم.
تشخیص صفات،همچنین درجه درک ماشین ها از اشیاء دیداری را بهبود می بخشد.قابلیت ماشین ها برای "توصیف" اشیاء،کاربردهای مفیدی از قبیل موتورهای جستجوی تصویر را ارائه می دهد که در جستجوهای خاص به خوبی عمل می کند.بعلاوه،ویژگی ها اغلب توسط اشیاء مختلف به اشتراک گذاشته میشوند. بنابر این ویژگی ها اطلاعات مفیدی برای سازماندهی مجموعه تصاویر ارائه میدهند.علاوه براین،در کارهای تشخیص،دانش درباره ی صفات اجازه میدهد بخشی از وظیفه ی یادگیری بین دسته[^Category] ها به اشتراک گذاشته شود.
درکل،نشان داده شده که روش صفت محور برای تشخیص شیء بهتر از نامگذاری سنتی عمل میکند و قابلیت های بسیاری ارائه میکند.

# کارهای مرتبط
در ادامه به معرفی اجمالی چند روش تشخیص صفت میپردازیم: 
**1. روش مبتنی بر Poselet برای دسته بندی صفات:**
صفاتی همانند جنسیت،مدل مو و انواع لباس افراد، با تنوع بسیار زیاد در زاویه دید و حالت(ژست)[^Pose] را تشخیص بدهیم. دسته بندی کننده های قوی صفات،تحت چنین شرایطی بایستی مستقل ازحالت باشند اما حدس زدن حالت،خودش یک مسئله ی چالش انگیز است.ما از یک روش مبتنی بر جزء بر اساس poselet استفاده میکنیم.بخش های ما به طور ضمنی نمود [^Aspect](حالت و زاویه دید) راتجزیه می کنند.ما دسته بندی کننده ها را برای هر یک از این نمودها آموزش می دهیم و آنها را در یک مدل تشخیصی[^Discriminative]با یکدیگر ترکیب می کنیم؛زیرا تغییرات زیادی که بوسیله تغییر حالت در ظاهرایجاد می شوند ما را از آموزش یک یابنده[^Detector]عمومی باز میدارد.
ما مسائل کلاسیک را با تشخیص و تقسیم بندی توسط یک یابنده ی مبتنی بر جزء، حل میکنیم.این یابنده روی یک جزءاصلی کار میکند و poseletنام دارد. Poseletبرای پاسخ دادن به یک قسمت از شیء – با حالت و زاویه ی داده شده- آموزش داده میشود. 
**2. مدل نهفته[^Latent] ی تشخیصی:**
هدف نهایی این روش ساخت سیستم های تشخیصی است که به طور مشترک کلاس های شیء و صفات را در یک چارچوب[^framework] یادمیگیرند.این مدل در چارچوب SVM نهفته آموزش دیده است.در طول آموزش،صفات را بعنوان متغیرهای نهفته در نظر میگیریم و تلاش میکنیم که برچسب کلاس یک عکس را استنباط کنیم.
**3.  توصیف گرهای بخش تغییرپذیر برای تشخیص ریزدانه و پیش بینی صفت:**
آنچه که دسته های basic-level را متمایز میکند وجود یا عدم وجود بخش هاست(بعنوان مثال،فیل 4پا و یک بدنه دارد)،درحالیکه دسته های subordinate بیشتر با تغییرات دقیق و ظریف در شکل،اندازه و یا خواص ظاهری این بخش ها جدا میشوند(بعنوان مثال،گونه های فیل میتوانند با نشانه های fبومی شده [^localized]ای مانند شکل و اندازه گوش متمایز شوند).fبومی کردن[^localizing] صفات و توصیف بخش های شیء برای کشف هویت ریزدانه ی آن به قسمت اصلی این روش تبدیل شده است.
در این روش،ما DPD(Deformable Part Descriptors)  را ارائه میدهیم که یک چاچوب قوی و کارآمد برای توصیف حالت نرمال شده برپایه بخش های DPM دارد.
![DPD](http://8pic.ir/images/8mofvsftw0npl9akloxk.png)
در این شکل هر دو نوع DPD ها نشان داده شده است.اولین توصیف گر(ردیف بالا) یک DPM با ناظر قوی را برای بومی سازی بخش بکار برده است.سپس نرمال سازی حالت را با تجمیع ویژگی ها از این قطعات معنایی انجام میدهد.ویژگی های حالت نرمال شده ی   ψpn  میتواند برای هرکدام از تشخیص ریزدانه یا پیش بینی صفت استفاده شود(همانطور که در شکل با نقطه چین نشان داده شده است).
	
توصیف گر دوم یک DPM با ناظر ضعیف را برای بومی سازی بخش بکار برده است و سپس از یک مدل تطابق معنایی برای تجمیع ویژگی ها از بخش های نهفته به سمت نواحی معنایی (توصیفگر حالت نرمال شده یψpn)استفاده میکند که توسط همه ی کامپوننت ها به اشتراک گذاشته میشود.در تجمیع بخش به ناحیه (خطوط مشکی،زرد،بنفش و آبی)،خطوط پهن تر نشان دهنده ی وزن بیشتری هستند و تصویر آنها پررنگ تر دیده میشود.

**4.روش نمایش های اسپارس و آموزش از راه دور:**
دراین روش "پیش بینی صفت" و "نگاشت صفت به کلاس" را جدا می کنیم؛سپس بوسیله ی معرفی شیوه های جایگزین در پیش بینی صفت و نگاشت صفت به کلاس،دو الحاق[^Extension]بر روی الگوی طبقه بندی مبتنی بر صفت ارائه میدهیم.
برای پیش بینی صفت،از طرح طبقه بندی کننده ی نمایش های اسپارس  استفاده میکنیم که مزیت های مهمی در مقایسه با شیوه های مبتنی بر SVM ارائه میدهد.این مزیت ها عبارتند از :افزایش دقت و حذف مرحله ی آموزش.
برای نگاشت صفت به کلاس،از یک الگوریتم آموزش از راه دور استفاده میکنیم؛این الگوریتم به جای آنکه اهمیت یکسانی برای صفات در نظر بگیرد به طور خودکار اهمیت هرصفت را استنباط میکند.

**5. یادگیری صفات تصویر با استفاده از IBP:**
تقریبا در اکثر الگوریتم های یادگیری صفت و چارچوب های تشخیص شیء مبتنی بر صفت،صفات باید از قبل تعریف شده باشند.در این روش،ما تلاش میکنیم که صفات را به یک روش کاملا بی ناظر[^Unsupervised] از مجموعه عکس های داده شده یادبگیریم.ما از یک متد آماری Baysian که غیر پارامتری  و Data-Deriven است استفاده میکنیم که Infinite Sparse FactorAnalysis  نامیده میشود و یک روش تبدیل خطی است که نمایش مورد نظر داده های چند متغیره یکی است که وابستگی آماری اجزای نمایش را به حداقل می رساند.در یک پیاده سازی اسپارس ما این انتخاب را آزاد میگذاریم که آیا یک کامپوننت برای یک data point فعال باشد؟بعلاو، برای داشتن یک تعداد نامحدود از اجزاءکامپوننت ها،یک تقدم برای یک ماتریکس دودویی از صفات پنهان که از یک تقدم غیرپارامتری به نام (IBP) Indian Buffet Process  استفاده می کند قرار می دهیم .IBP  یک توزیع روی کلاس های هم ارزی ماتریس دودویی با تعداد محدودی از سطر و تعداد نامحدود از ستون است و میتواند برای مدل سازی خصوصیات پنهان غیرپارامتری استفاده شود که در آن ردیف ها متناظر با data pointها و ستون ها متناظر با خصوصیات پنهان هستند.


# آزمایش‌ها

# کارهای آینده

# مراجع
[1] A. Farhadi, I. Endres, D. Hoiem, and D.A. Forsyth, “Describing Objects by their Attributes”, CVPR 2009 
[2] Lubomir Bourdev, Subhransu Maji, Jitendra Malik, Describing People: Poselet-Based Approach to Attribute Classification, ICCV 2011 
[3] Wang, Yang, and Greg Mori. "A discriminative latent model of object classes and attributes." Computer Vision–ECCV 2010. Springer Berlin Heidelberg, 2010. 155-168. 
[4] Tsagkatakis, Grigorios, and Andreas Savakis. "Sparse representations and distance learning for attribute based category recognition." Trends and Topics in Computer Vision. Springer Berlin Heidelberg, 2012. 29-42.
[5] Zhang, Ning, et al. "Deformable part descriptors for fine-grained recognition and attribute prediction." Computer Vision (ICCV), 2013 IEEE International Conference on. IEEE, 2013.
 [6]Yuyin Sun, "Attribute Based Object Identification",Liefeng Bo and Dieter Fox,Robotics and Automation (ICRA), 2013 IEEE International Conference on .
 [7]Kun Duan,Devi Parikh,David Crandall,and Kristen Grauman,"Discovering Localized Attributes for Fine-grained Recognition", In CVPR, 2012.
 [8]Soravit Changpinyo,Erik B. Sudderth,"Learning Image Attributes using the Indian Buffet Process."BS. thesis,2012
[9]Christoph H. Lampert, Hannes Nickisch,and  Stefan Harmeling,"Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer.",. In CVPR, pages 951–958, 2009.
[10]Jungseock Joo,Shuo Wang,and Song-Chun Zhu,"Human Attribute Recognition by Rich Appearance Dictionary", International Conference on Computer Vision (ICCV), 2013.
[11]Kun Duan,Luca Marchesotti,and David J. Crandall,"Attribute-based Vehicle Recognition using Viewpoint-aware
Multiple Instance SVMs.",IEEE Winter Conference on Applications of Computer Vision. 2014.
[12]Ali Farhadi,Ian Endres,and Derek Hoiem,"Attribute-Centric Recognition for Cross-category Generalization.",CVPR 2010. 
[13]Lubomir Bourdev,"Poselets and Their Applications in High-Level Computer Vision".",UC Berkeley Electronic Theses and Dissertations,2011.
[14]Neeraj Kumar,Alexander C. Berg,Peter N. Belhumeur,and Shree K. Nayar,"Attribute and Simile Classifiers for
Face Verification", ICCV 2009.
[15]Christoph Lampert,"Semantic Attributes for Object Categorization.",IST Austria (Institute of Science and Technology Austria),Klosterneuburg, Austria,82pages.
[16]http://www.eecs.berkeley.edu/~lbourdev/poselets






# پیوندهای مفید
+ [Dataset: UIUC64](http://vision.cs.uiuc.edu/attributes/)
+ [Dataset: H3D](http://www.eecs.berkeley.edu/~lbourdev/h3d/)