این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

تشخیص اشیا

با توجه به یک تصویر یا جریان ویدئویی ، یک مدل تشخیص اشیا can می تواند شناسایی کند که کدام یک از مجموعه های شناخته شده اشیا ممکن است وجود داشته باشد و اطلاعاتی در مورد موقعیت آنها در تصویر ارائه دهد.

به عنوان مثال ، این تصویر از برنامه مثال نشان می دهد که چگونه دو شی objects شناخته شده و موقعیت های آنها حاشیه نویسی شده است:

عکس صفحه از مثال Android

شروع کنید

برای یادگیری نحوه استفاده از تشخیص اشیا در یک برنامه تلفن همراه ، برنامه ها و راهنماهای نمونه را کاوش کنید.

اگر از سیستم عامل دیگری غیر از Android یا iOS استفاده می کنید یا اگر از قبل با TensorFlow Lite API آشنایی دارید ، می توانید مدل شناسایی شی شروع کننده و برچسب های همراه ما را بارگیری کنید.

مدل مبتدی را با فراداده بارگیری کنید

برای کسب اطلاعات بیشتر در مورد فراداده و زمینه های مرتبط (به عنوان مثال: labels.txt ) به متادیتای مدل ها مراجعه کنید

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

برای موارد استفاده زیر ، باید نوع دیگری از مدل را استفاده کنید:

  • پیش بینی اینکه کدام یک از برچسب ها به احتمال زیاد تصویر نشان می دهد (به طبقه بندی تصویر مراجعه کنید )
  • پیش بینی ترکیب تصویر ، به عنوان مثال موضوع در برابر پس زمینه ( تقسیم بندی را ببینید)

مثالهایی از برنامه ها و راهنماها

اگر در TensorFlow Lite تازه کار هستید و با Android یا iOS کار می کنید ، توصیه می کنیم موارد زیر را بررسی کنید که می توانند به شما در شروع کار کمک کنند.

اندروید

می توانید API خارج از جعبه را از TensorFlow Lite Task Library برای ادغام مدل های تشخیص شی در فقط چند خط کد استفاده کنید. همچنین می توانید خط لوله استنباط سفارشی خود را با استفاده از TensorFlow Lite Interpreter Java API بسازید.

مثال اندروید زیر ، پیاده سازی هر دو روش را به ترتیب به عنوان lib_task_api و lib_interpreter نشان می دهد.

مثال Android را مشاهده کنید

iOS

می توانید مدل را با استفاده از TensorFlow Lite Interpreter Swift API ادغام کنید . به مثال iOS در زیر مراجعه کنید.

مشاهده مثال iOS

شرح مدل

این بخش امضای مدلهای آشکارساز تک شات را که از API تشخیص شیject TensorFlow به TensorFlow Lite تبدیل شده اند ، توصیف می کند .

یک مدل تشخیص اشیا آموزش داده می شود تا وجود و مکان چندین کلاس اشیا را تشخیص دهد. به عنوان مثال ، یک مدل ممکن است با تصاویری که حاوی تکه های مختلف میوه است ، همراه با برچسبی که کلاس میوه آنها را نشان می دهد (به عنوان مثال یک سیب ، یک موز یا یک توت فرنگی) ، و داده هایی که مشخص می کند هر شی در کجا ظاهر می شود ، آموزش داده شود. تصویر.

وقتی تصویری متعاقباً به مدل ارائه می شود ، لیستی از اشیا it را که شناسایی می کند ، محل جعبه محدود کننده حاوی هر شی object و نمره ای را نشان می دهد که نشان می دهد اطمینان از تشخیص صحیح است.

امضای ورودی

مدل تصویری را به عنوان ورودی می گیرد.

بیایید تصور کنیم که تصویر مورد انتظار 300x300 پیکسل است ، با سه کانال (قرمز ، آبی و سبز) در هر پیکسل. این باید به عنوان یک بافر مسطح 270،000 مقدار بایت (300x300x3) به مدل داده شود. اگر مدل کوانتیزه شود ، هر مقدار باید یک بایت باشد که مقدار بین 0 تا 255 را نشان دهد.

برای درک نحوه انجام این مراحل قبل از پردازش در Android ، می توانید بهکد برنامه نمونه ما نگاهی بیندازید.

امضای خروجی

مدل چهار آرایه تولید می کند که به شاخص های 0-4 ترسیم می شود. آرایه های 0 ، 1 و 2 N اشیا detected شناسایی شده را توصیف می کنند ، با یک عنصر در هر آرایه مربوط به هر شی.

فهرست مطالب نام شرح
0 مکانها آرایه چند بعدی [N] [4] مقادیر نقطه شناور بین 0 و 1 ، آرایه های داخلی نشان دهنده جعبه های محدود کننده به شکل [بالا ، چپ ، پایین ، راست]
1 کلاس ها آرایه ای از عدد صحیح N (خروجی به عنوان مقادیر شناور) هر کدام شاخص یک برچسب کلاس را از فایل برچسب ها نشان می دهد
2 امتیازات آرایه ای از مقادیر نقطه شناور N بین 0 و 1 نشان دهنده احتمال تشخیص یک کلاس است
3 تعداد ردیابی ها مقدار عدد صحیح N

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

کلاس نمره محل
سیب 0.92 [18 ، 21 ، 57 ، 63]
موز 0.88 [100 ، 30 ، 180 ، 150]
توت فرنگی 0.87 [7 ، 82 ، 89 ، 163]
موز 0.23 [42 ، 66 ، 57 ، 83]
سیب 0.11 [6 ، 42 ، 31 ، 58]

نمره اعتماد به نفس

برای تفسیر این نتایج ، می توانیم نمره و مکان هر شی کشف شده را بررسی کنیم. امتیاز عددی بین 0 تا 1 است که نشانگر اطمینان از تشخیص واقعی شی the است. هرچه عدد به 1 نزدیکتر باشد ، مدل از اعتماد به نفس بیشتری برخوردار است.

بسته به برنامه کاربردی خود ، می توانید یک آستانه قطع تصمیم بگیرید که زیر آن نتایج تشخیص را کنار بگذارید. برای مثال فعلی ، یک برش معقول نمره 0.5 است (به معنای 50٪ احتمال معتبر بودن تشخیص). در این صورت ، دو شی last آخر آرایه نادیده گرفته می شوند زیرا این نمرات اطمینان زیر 0.5 است:

کلاس نمره محل
سیب 0.92 [18 ، 21 ، 57 ، 63]
موز 0.88 [100 ، 30 ، 180 ، 150]
توت فرنگی 0.87 [7 ، 82 ، 89 ، 163]
موز 0.23 [42 ، 66 ، 57 ، 83]
سیب 0.11 [6 ، 42 ، 31 ، 58]

برشی که استفاده می کنید باید براساس این باشد که آیا شما با مثبت کاذب راحت تر هستید (اشیایی که به اشتباه شناسایی شده اند یا مناطقی از تصویر است که به اشتباه به عنوان اشیا شناخته می شوند در صورت عدم وجود) یا نگاتیوهای کاذب (اشیا اصلی از دست رفت زیرا اعتماد به نفس آنها پایین بود).

به عنوان مثال ، در تصویر زیر ، یک گلابی (که جسمی نیست که مدل برای شناسایی آن آموزش دیده باشد) به عنوان "شخص" اشتباه شناسایی شده است. این مثالی از مثبت کاذب است که می تواند با انتخاب برش مناسب نادیده گرفته شود. در این حالت ، قطع 0.6 (یا 60٪) به راحتی مثبت کاذب را حذف می کند.

عکس صفحه از مثال Android که یک مثبت کاذب را نشان می دهد

محل

برای هر شی detected شناسایی شده ، مدل آرایه ای از چهار عدد را به نمایش می گذارد که نشان دهنده مستطیل محدود کننده موقعیت آن است. برای مدل شروع کننده ارائه شده ، اعداد به شرح زیر مرتب می شوند:

[ بالا، ترک کرد، پایین ، درست ]

مقدار بالایی فاصله لبه بالایی مستطیل را از بالای تصویر ، به پیکسل نشان می دهد. مقدار سمت چپ فاصله لبه سمت چپ از سمت چپ تصویر ورودی را نشان می دهد. مقادیر دیگر لبه های پایین و راست را به روشی مشابه نشان می دهند.

معیارهای عملکرد

اعداد معیار عملکرد برای مدل مبتدی ما با ابزاری که در اینجا توضیح داده شده تولید می شوند.

نام مدل اندازه مدل دستگاه پردازنده گرافیکی پردازنده
COCO SSD MobileNet v1 27 مگابایت Pixel 3 (اندروید 10) 22 میلی ثانیه 46 میلی ثانیه *
Pixel 4 (اندروید 10) 20 میلی ثانیه 29 میلی ثانیه *
آیفون XS (iOS 12.4.1) 7.6 میلی ثانیه 11 ثانیه **

* 4 موضوع استفاده شده است

** 2 موضوع مورد استفاده در iPhone برای بهترین نتیجه عملکرد.

سفارشی سازی مدل

مدل های از قبل آموزش دیده

مدل های تشخیص بهینه شده توسط تلفن همراه با انواع تاخیر و ویژگی های دقیق را می توان در باغ وحش تشخیص یافت. هر یک از آنها امضای ورودی و خروجی را شرح می دهد که در بخش های بعدی شرح داده شده است.

بیشتر فایلهای فشرده بارگیری حاوی فایل model.tflite است. اگر موردی وجود نداشته باشد ، می توان با استفاده از این دستورالعمل ها دستگاه بخور TensorFlow Lite ایجاد کرد. همچنین می توان مدل های SSD موجود در باغ وحش تشخیص شی TF2 را با استفاده از دستورالعمل های اینجا به TensorFlow Lite تبدیل کرد. توجه به این نکته مهم است که مدل های تشخیصی نمی توانند مستقیماً با استفاده از مبدل TensorFlow Lite تبدیل شوند ، زیرا آنها به مرحله متوسط ​​تولید یک مدل منبع سازگار با موبایل نیاز دارند. اسکریپت های پیوند داده شده در بالا این مرحله را انجام می دهند.

هر دو اسکریپت صادر کننده TF1 و TF2 دارای پارامترهایی هستند که می توانند تعداد بیشتری از اشیا output خروجی یا پردازش سریعتر و دقیق تر پست را فعال کنند. لطفا برای استفاده از --help با اسکریپت برای مشاهده یک لیست جامع از استدلال پشتیبانی می شود.

در حال حاضر ، استنباط روی دستگاه فقط با مدلهای SSD بهینه می شود. پشتیبانی بهتر از سایر معماری ها مانند CenterNet و EfficDet در حال بررسی است.

چگونه یک مدل برای شخصی سازی انتخاب کنیم؟

هر مدل با دقت خاص خود (با مقدار MAP کمی شده) و ویژگی های تأخیر ارائه می شود. شما باید مدلی را انتخاب کنید که به بهترین وجه مناسب مورد استفاده و سخت افزار مورد نظر شما باشد. به عنوان مثال ، مدل های Edge TPU برای استنباط در Edge TPU گوگل در Pixel 4 ایده آل هستند.

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

تنظیم دقیق مدل های داده های سفارشی

مدل های از قبل آموزش دیده ای که ارائه می دهیم برای شناسایی 90 کلاس از اشیا آموزش دیده اند. برای لیست کامل کلاس ها ، به فایل برچسب ها در فراداده مدل مراجعه کنید .

شما می توانید از یک تکنیک معروف به یادگیری انتقال برای آموزش مجدد یک مدل برای تشخیص کلاسهایی که در مجموعه اصلی نیستند استفاده کنید. به عنوان مثال ، شما می توانید مدل را دوباره آموزش دهید تا انواع مختلفی از سبزیجات را تشخیص دهد ، با وجود اینکه فقط یک سبزی در داده های اصلی آموزش وجود دارد. برای این کار ، برای هر یک از برچسب های جدیدی که می خواهید آموزش دهید ، به مجموعه ای از تصاویر آموزشی نیاز خواهید داشت. لطفاً به عنوان نمونه تنظیم دقیق یک مدل از قبل آموزش دیده با چند مثال ، از Colab تشخیص چند عکس استفاده کنید .

برای تنظیم دقیق با مجموعه داده های بزرگتر ، برای آموزش مدل های خود با TensorFlow Object Detection API: TF1 ، TF2 به این راهنماها نگاهی بیندازید. پس از آموزش ، می توان آنها را به فرم مناسب TFLite با دستورالعمل های اینجا: TF1 ، TF2 تبدیل کرد