ساخت سریع Image classifier با Tensorflow

0
924
ساخت سریع Image classifier با Tensorflow
ساخت سریع Image classifier با Tensorflow

یکی‌از سریع‌ترین و موثرترین راه‌ها برای ساخت برنامه image classifier این است که از اهرمی به‌نام transfer learning استفاده‌کنیم تا اشیایی که موردنظر ما هستند را تشخیص‌بدهد. در این مقاله این رویکرد را با بهره‌وری از Google’s Inception v3 image classifier دنبال می‌کنیم. توصیه می‌کنیم قبل‌از مطالعه مقاله برای دید بهتر ابتدا “هوش‌مصنوعی با OPENCV” را مطالعه کنید. (ترجیحا اگر مطالب OpenCv سایت را بخوانید متوجه موضوع خواهید شد.)

مراحل پروژه:

راه‌اندازی و استفاده‌از Tensor Flow Docker Container دانلود مجموعه اموزشی آموزش‌دادن تشخیص

گام اول

راه‌اندازی و استفاده‌از Tensor Flow Docker Container:

ابتدا باید از طریق لینکی که در ادامه قرار می‌دهیم نرم‌افزار موردنظر را نصب‌کنید. برای دریافت نسخه ویندوز نرم‌افزار داکر باید از سایت رسمی آن دانلود کنید.(توجه‌کنید که تا log in نکنید نمیتونید چیزی دانلود کنید!) برای دانلود، دو نوع نرم‌افزار برای دانلود است که اگر حوصله سروکله‌زدن با ارور و باگ‌ها را ندارید نسخه stable را پیشنهاد می‌کنیم و اگر بیشتر و حرفه‌ای‌تر می‌خواهید در این زمنیه کار کنید توصیه می‌کنیم نسخه edge نرم‌افزار را نصب‌کنید.

نصب تنسور فلو
نصب تنسور فلو

 

پس‌از اینکه نرم‌افزار را نصب‌کردید برای اطمینان از نصب می‌توانید از پنجره Power Shell یا Command Prompt ورژن نرم‌افزار را چک‌کنید.

docker version
تشخیص ورژن Docker
تشخیص ورژن Docker

 

خب از این مرحله به بعد هر زمانی می‌خواهید با نرم‌افزار docker کار کنید اول باید نرم‌افزار رو باز کنید و مطمئن‌شوید که نرم‌افزار درحال اجرا است مانند تصویر زیر.

docker چیست؟
docker چیست؟

 

و با اجرای این دستور:

docker run hello-world
هوش مصنوعی چیست؟
هوش مصنوعی چیست؟

 

می‌توانید مطمئن‌شوید که داکر می‌تواند ایمیج ها را دریافت و درنتیجه اجرا کند. این دستور ایمیج تنسورفلو موردنظر را دانلود می‌کند و یک container را در پس‌زمینه اجرا می‌کند. وقتی container درحال اجرا است می‌توانیم به نرم‌افزار متصل شویم(log in کنیم) و توسعه و کارهای موردنظر را در container انجام بدهیم.

docker run -it -d macgyvertechnology/tensorflow
پیاده‌سازی هوش مصنوعی
پیاده‌سازی هوش مصنوعی

 

حال می‌توانیم ایمیج‌هایی را که داریم توسط دستور زیر چک کنیم.

چک کردن ایمیج
چک کردن ایمیج

 

Docker images

 

گام دوم

دانلود مجموعه آموزشی:

می‌توانید از extentionهای مرورگرها استفاده‌کنید به‌طور‌مثال برای گوگل کروم می‎‌توانید از اینجا کلیک‌کنید.

نرم‌افزار docker برای مرورگر کروم
نرم‌افزار docker برای مرورگر کروم

 

و همچنین برای فایرفاکس می‌توانید اینجا کلیک کنید.

نرم‌افزار docker برای مرورگر فایرفاکس
نرم‌افزار docker برای مرورگر فایرفاکس

 

از دیتایی که دانلود کردیم حدود ۹۰درصد را برای آموزش و ۱۰درصد را برای تست و تشخیص جدا می‌کنیم. مجموعه آموزشی را به مسیری به‌نام trainingimages انتقال می‌دهیم.

/training_images

        /dog

               image1.jpg

               image2.jpg

               ...

        /cat

               image1.jpg

               image2.jpg

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

 

دیتا تست:

شبکه عصبی
شبکه عصبی

 

برای دریافت ID container از دستور زیر استفاده می‌کنیم.

docker ps -a
نصب docker
نصب docker

 

حال فایل /training_images را درون docker container که درحال‌اجرا است کپی می‌کنیم. (برای اینکار باید اول به دایرکتوری دیتایی که دانلود کردیم برویم)

docker cp training_images/ _container_id_:/
نصب نرم‌افزار docker
نصب نرم‌افزار docker

داده های تست هم همینطور به‌صورت‌زیر است:

docker cp test_images / _container_id_:/
نصب TensorFlow
نصب TensorFlow

و درنهایت به container وارد می‌شویم:

docker exec -it _container_id_ bash
نصب TensorFlow
نصب TensorFlow

 

(دقت‌کنید که ازاینجا به‌ بعد وارد محیط لینوکس شدیم میدونم پیچیده شده کاملا هم قبوله ولی شیرینه البته برای اهل دلش) حال دایرکتوری روت را چک می‌کنیم:

Cd /

ls

درنهایت لیست باید شامل نوشته زیر باشد که باشد(اگر موفق به دیدن خط زیر شدین واقعا باید به خودتون تبریک بگین)

Training_images   test_images   tensorflow
نصب TensorFlow
نصب TensorFlow

 

گام سوم

آموزش شبکه عصبی:

دستور زیر retrain.py را اجرا و آموزش را شروع می‌کند.

python tensorflow/tensorflow/examples/image_retraining/retrain.py \

--bottleneck_dir=/bottlenecks \

--model_dir=/inception \

--output_labels=/retrained_labels.txt \

--output_graph=/retrained_graph.pb \

--image_dir=/training_images/

(دقت‌کنید که خطوط بالا یک دستور است نه چند دستور) خروجی‌ شما باید و حتما شبیه عکس زیر باشد.

 

این مرحله نسبت به مراحل قبلی مقداری طول می‌کشد پس لطفا صبور باشید.

گام چهارم

تشخیص:

حالا می‌توانیم ماژول آموزش‌داده‌شده را اجراکنیم و ببینیم عملکرد آن برای دیتایی که برای تست قرار داده‌ بودیم چیست؟

python tensorflow/tensorflow/examples/image_retraining/label_image.py \

--graph=/retrained_graph.pb \

--labels=/retrained_labels.txt \

--image=/test_images/german-shepherd/german-shepherd-toy.jpeg

german-shepherd-toy.jpeg عکسی از داده های تست که می‌خواهیم ماژول را با آن تست کنیم.
دقت کنید که نگفتیم هر عکسی لطفا به انتخاب این عکس‌ها با دقت عمل کنید.

خروجی آخر هم باید مانند تصویری که در ادامه قرار می‌دهیم باشد.

پروژه هوش مصنوعی
پروژه هوش مصنوعی

 

python tensorflow/tensorflow/examples/image_retraining/label_image.py \

--graph=/retrained_graph.pb \

--labels=/retrained_labels.txt \

--image=/test_images/dalmation/dalmation-toy.jpeg
پروژه هوش مصنوعی
پروژه هوش مصنوعی

دو خط آخر در هردو مثال درصد تخمین هرکلاس رو بیان می‌کند.

امیدواریم که این آموزش هم موردتوجه شما مخاطبین عزیز مفید واقع‌شده‌باشد.

 

منبع:‌سیسوگ

مطلب قبلیاهمیت تئوری و ریاضیات در برنامه‌نویسی قسمت دوم: کری یا سرریز، کدام؟
مطلب بعدیقسمت هشتم: ابزارهای محیط PCB

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید