یادگیری ماشین و هوش مصنوعی دو شاخهی مهم و پرطرفدار حوزه علوم دادهکاوی هستند. نقش این دو تکنیک در ارتقا کیفیت هر وسیله الکترونیکی نو ظهور نقش اساسی دارد.
به طور کلی کاربرد مهندسی علوم کامپیوتر تجزیه و تحلیل دادهها و پیش بینی نتایج و رفتار آینده توسط هوش مصنوعی، یادگیری ماشین و یادگیری عمیق است. در حال حاضر بسیاری از دستگاههای عرضه شده در بازار مانند دوربین گوشیهای هوشمند از قدرت یادگیری ماشین و هوش مصنوعی برای تشخیص چهره ، سن ظاهری و صوت استفاده میکنند.گوگل یکی از پیشگامان این فناوری نوظهور و مهم است.
تنسور فلو چیست؟
تنسور فلو یک کتابخانهی شبکه عصبی منبعباز قدرتمند، برای محاسبات عددی است که به طور خاص برای یادگیری ماشین در مقیاس بزرگ، ارائه و تنظیم شده است. این کتابخانه در برنامههای یادگیری ماشین مانند بینایی ماشین، بازتشخیص صدا، ترجمه زبان ، طبقه بندی تصاویر،تشخیص شی و مراقبت سلامت است. در سالهای آینده شاهد استفاده بیشتر از هوش مصنوعی در زندگی روزمره و کار انسان خواهیم بود .
بهره برداری از تنسور فلو در دستگاههای قابل حمل مانند رزبری پای ضروری بسیار مفید خواهد بود. بنابراین در این آموزش با نصب تنسور فلو بر روی رزبری پای و چند مثال ساده از کلاس بندی تصاویر توسط یک شبکه عصبی از پیش آموزش دیده را بررسی خواهیم کرد. در آموزشهای قبلی از رزبری پای برای سایر کارهای پردازش تصویر مانند تشخیص نوری شخصیت ، تشخیص چهره ، تشخیص شماره پلاک و غیره استفاده شده است.
الزامات
- برد رزبری پای با سیستم عامل نصب و بهروز رسانی شده رزبین
- کارت حافظه میکرو SD ( حداقل 16 گیگابایت)
- اتصال رزبری پای به اینترنت
در اینجا برای دسترسی رزبری پای به اینترنت از SSH لپتاپ استفاده خواهیم کرد. میتوانید از اتصال VNC یا Remote Desktop لپتاپ استفاده کرده و یا رزبری پای را به یک مانیتور متصل کنید.
به طور کلی رزبری پای یک دستگاه قابل حمل با انرژی مصرفی پایین است که قابلیت استفاده در بسیاری از برنامههای پردازش تصویر بلادرنگ مانند تشخیص چهره ، ردیابی اشیا ، سیستم امنیتی خانگی ، دوربین مداربسته و غیره را دارا است.
در گذشته نصب تنسور فلو کار بسیار دشواری بود. اما در سالهای اخیر توسعه دهندگان حوزه علوم کامپیوتر این کار را بسیار ساده کرده و با استفاده از چند دستور به راحتی قابل نصب است. اگر برخی از اصول اولیه و مفاهیم یادگیری ماشین و یادگیری عمیق را بدانید آنچه را که درون یک شبکه عصبی اتفاق میافتد کاملا لمس خواهید کرد.
نصب تنسور فلو در رزبری پای
در ادامه مراحل نصب تنسور فلو در رزبری پای بررسی شده است.
مرحله 1: قبل از نصب تنسور فلو در رزبری پای ابتدا با استفاده از دستورات زیر ، سیستم عامل رزبین را به روز رسانی کنید .
sudo apt-get update
sudo apt-get upgrade
مرحله 2: سپس کتابخانه Atlas را که از Numpy و سایر وابستگیها پشتیبانی میکند، نصب کنید.
sudo apt install libatlas-base-dev
مرحله 3: پس از اتمام کار ، TensorFlow را از طریق pip3 و با استفاده از دستور زیر نصب کنید.
pip3 install tensorflow
نصب تنسور فلو مدتی طول خواهد کشید. اگر هنگام نصب با خطایی مواجه شدید ، کافیست دستور بالا را مجددا تکرار کنید.
مرحله 4: پس از نصب موفقیتآمیز تنسور فلو، بهتر است درستی عملکرد آن با استفاده از برنامه کوتاه Hello world بررسی شود. بنابراین دستور زیر را در ویرایشگر متنی تایپ کنید.
sudo nano tfcheck.py
و خطوط زیر را در ترمینال nano کپی کرده و آن را ذخیره کنید.
import tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello)
مرحله 5: حال این اسکریپت را در ترمینال با استفاده از دستور زیر اجرا کنید.
python3 tfcheck.py
اگر همه بستهها به درستی نصب شده باشند، پیام !Hello Tensorflow را مشاهده خواهید کرد. همانطور که در تصویر زیر مشاهده میکنید پیام در خط آخر نشان داده شده است. تمام هشدارها را نادیده بگیرید.
حال با استفاده از تنسور فلو کاری جالب انجام خواهیم داد و نیازی نیست که برای انجام این پروژه هیچ دانشی در مورد یادگیری ماشین و یادگیری عمیق داشته باشید. در اینجا تنسورفلو توسط یک مدل از پیش ساخته شده تصویر را می دهد.
نصب کلاسیفایر تصویر بر روی رزبری پای به منظور تشخیص تصویر
مرحله 1: با استفاده از دستورات زیر یک دایرکتوری ایجاد کرده و مسیر آن را مشخص کنید.
mkdir tfcd tf
مرحله 2: اکنون مدلهای موجود در مخزن TensorFlow GIT را دانلود کنید. با استفاده از دستور زیر ، مخزن را وارد پوشه tf کنید.
git clone https://github.com/tensorflow/models.git
مرحله 3: از مثال کلاسبندی تصویر استفاده کنید. این مثال را میتوانید توسط دستور زیر به آن دست پیدا کنید.
cd models/tutorials/image/imagenet
مرحله 4: با استفاده از دستور زیر تصویر را به عنوان ورودی به شبکه وارد کنید.
python3 classify_image.py --image_file=/home/pi/image_file_name
نام تصویر را جایگزین عبارت image_file_name کنید و اینتر را بزنید.
در تصاویر زیر چند نمونه از شناسایی و تشخیص تصاویر توسط تنسور فلو با دقتی عالی در حدود 99 درصد نشان داده شده است.
همانطور که در تصویر بالا ملاحظه می کنید، شبکه عصبی تصویر گربه مصری را با اطمینان بالایی در مقایسه با گزینههای دیگر طبقهبندی کرد.
در تمام مثالهای فوق نتایج خوب و رضایت بخش است و تنسور فلو به راحتی میتواند تصاویر را با دقت بالا طبقهبندی کند. میتوانید این کار را روی تصاویر شخصی نیز امتحان کنید.