عملکرد تشخیص شیء ، همانطور که در مجموعه داده متعارف PASCAL VOC اندازه گیری شده است، در چند سال گذشته افزایش یافته است. بهترین روش ها، سیستم های مجموعه پیچیده ای هستند که معمولاً چندین ویژگی تصویر سطح پایین را با زمینه سطح بالا ترکیب می کنند. در این مقاله، یک الگوریتم تشخیص ساده و مقیاس پذیر پیشنهاد شده است که میانگین دقت متوسط (mAP) را بیش از 30 تکرار نسبت به بهترین نتیجه قبلی در VOC 2012 — و دستیابی به mAP بهبود 53.3% بهبود می بخشد. رویکرد پیشنهادی در این مقاله دو بینش کلیدی را ترکیب می کند: (1) می توان از شبکه های عصبی کانولوشن با ظرفیت بالا (CNN) برای پیشنهادات منطقه به بالا به منظور مکان یابی و تقسیم بندی اشیاء استفاده کرد و (2) هنگامی که داده های آموزشی دارای برچسب کمیاب هستند، قبل از آموزش تحت نظارت هستند برای یک کار کمکی و به دنبال آن تنظیم دقیق دامنه، عملکرد قابل توجهی افزایش می یابد. از آنجا که پیشنهادات منطقه را با CNN ها ترکیب می کنیم، روش پیشنهادی در این مقاله را R-CNN می نامیم: مناطق با ویژگی های CNN. همچنین R-CNN را با OverFeat مقایسه می کنیم، یک آشکارساز پنجره کشویی که بر اساس معماری مشابه CNN پیشنهاد شده است. نتایج نشان می دهد که R-CNN در مجموعه داده تشخیص 200 کلاس ILSVRC2013 با اختلاف زیادی از OverFeat بهتر عمل می کند.
مقدمه
R-CNN یک سیستم تشخیص شیء بصری پیشرفته است که پیشنهادهای منطقه از بالا به بالا را با ویژگی های غنی محاسبه شده توسط یک شبکه عصبی کانولوشن ترکیب می کند. در زمان انتشار، R-CNN بهترین عملکرد تشخیص قبلی را در PASCAL VOC 2012 با 30٪ نسبت بهبود داد و از میانگین دقت از 40.9٪ به 53.3٪ رسید. بر خلاف بهترین نتایج قبلی، R-CNN این عملکرد را بدون استفاده از بازیابی زمینه ای یا مجموعه ای از انواع ویژگی ها به دست می آورد.
نتایج تشخیص PASCAL VOC
روش | VOC 2007 mAP | VOC 2010 mAP | VOC 2012 mAP |
R-CNN | 54.2% | 50.2% | 49.6% |
R-CNN bbox reg | 58.5% | 53.7% | 53.3% |
نتایج VOC 2007 برای هر کلاس در مقاله Rich feature hierarchies for accurate object detection and semantic segmentation موجود است
نتایج تشخیص کلاس ImageNet 200
روش | ILSVRC2013 test mAP |
R-CNN bbox reg | 31.4% |
کدی که برای آموزش استفاده شد در شاخه ilsvrc است
نصب R-CNN
پیش نیازها
MATLAB (آزمایش شده با 2012b در لینوکس 64 بیتی)
پیش نیازهای Caffe
Caffe را نصب کنید (این پیچیده ترین قسمت است)
R-CNN برای سازگاری با نسخه Caffe v0.999 بررسی شده است. برای کار با استاد Caffe فعلی به روز نشده است.
Caffe v0.999 را بارگیری کنید
دستورالعمل های نصب Caffe را دنبال کنید
محلی را که caffe را در آن نصب کرده اید $CAFFE_ROOT (می توانید export CAFFE_ROOT=$(pwd) را اجرا کنید)
مهم: مطمئن شوید که پکیج Caffe MATLAB را که به طور پیش فرض ساخته نشده است کامپایل کردید: make matcaffe
مهم: مطمئن شوید که cd $CAFFE_ROOT/data/ilsvrc12 && ./get_ilsvrc_aux.sh را برای بارگیری تصویر ImageNet بکار بگیرید
R-CNN را نصب کنید
سورس کد R-CNN را با کلون کردن مخزن بگیرید: git clone https://github.com/rbgirshick/rcnn.git
اکنون به فهرست راهنمای سورس کد R-CNN تغییر دهید: cd rcnn
R -CNN انتظار دارد که Caffe را در external/caffe پیدا کند، بنابراین یک symlink ایجاد کنید: ln -sf $CAFFE_ROOT external/caffe
MATLAB را شروع کنید (مطمئن شوید که هنوز در فهرست rcnn هستید): matlab
از شما خواسته می شود کد جستجوی انتخابی را بارگیری کنید، که نمی توانیم آن را دوباره توزیع کنیم. پس از آن، باید پیغام R-CNN startup done و سپس اعلان MATLAB را مشاهده کنید >>.
اسکریپت build را اجرا کنید: >> rcnn_build() (جستجوی خطی و انتخابی را ایجاد می کند). اگر هنگام ایجاد خط خطی هشدارهای کامپایلر را مشاهده کردید، نگران نباشید، این در سیستم طبیعی است.
بررسی کنید که پکیج Caffe و MATLAB به درستی تنظیم شده باشند (این کد باید بدون خطا اجرا شود): >> key = caffe(‘get_init_key’); (خروجی مورد انتظار key = -2 است)
بسته مدل را که شامل مدل های پیش از محاسبه است بارگیری کنید (به پایین مراجعه کنید).
مسائل متداول: ممکن است قبل از شروع MATLAB یک LD_LIBRARY_PATH تنظیم کنید. اگر پیامی مانند “Invalid MEX-file ‘/path/to/rcnn/external/caffe/matlab/caffe/caffe.mexa64’: libmkl_rt.so: cannot open shared object file: No such file or directory” مشاهده کردید: libmkl_rt.so: مطمئن شوید CUDA و MKL در LD_LIBRARY_PATH شما هستند. ما در سیستم از موارد زیر استفاده می کنیم:
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/usr/local/cuda/lib64
بارگیری مدل های از پیش محاسبه شده (بسته مدل)
سریعترین راه برای شروع بارگیری آشکارسازهای R-CNN از پیش محاسبه شده است. در حال حاضر ما آشکارسازهایی داریم که روی PASCAL VOC 2007 train+val ، 2012 train و ILSVRC13 train+val آموزش دیده اند. حجم بارگیری زیاد است (1.5 گیگابایت).
از پوشه rcnn ، اسکریپت fetch مدل را اجرا کنید: ./data/fetch_models.sh
با این کار پوشه rcnn/data با caffe_nets و rcnn_models پر می شود. برای اطلاعات بیشتر rcnn/data/README.md را ببینید.
همچنین می توانید جعبه های جستجوی انتخابی از پیش محاسبه شده را برای VOC2007 ، VOC2012 و ILSVRC13 بارگیری کنید. از پوشه rcnn ، اسکریپت جستجوی انتخابی داده ها را اجرا کنید: ./data/fetch_selective_search_data.sh
با این کار پوشه rcnn/data با selective_selective_data پر می شود.
توجه به سازگاری با Caffe: R-CNN برای استفاده از پیام های اولیه جدید Caffe که در Caffe v0.999 منتشر شده است به روز شده است. بسته مدل شامل مدل هایی با قالب اولیه به روز است. اگر به دلایلی باید مدلهای قدیمی (Caffe proto v0) را تهیه کنید، هنوز می توانید آنها را بارگیری کنید: مدلهای VOC مدل ILSVRC13.
اجرای آشکارساز R-CNN بر روی تصویر
فرض کنیم شما آشکارسازهای از پیش محاسبه شده را بارگیری کرده اید. اکنون:
تغییر محل نصب R-CNN: cd rcnn.
متلب MATLAB را راه اندازی کنید.
مهم: اگر پیام راه اندازی R-CNN را هنگام شروع متلب نمی بینید، احتمالاً MATLAB را در فهرست rcnn راه اندازی نکرده اید.
نسخه ی دمو را اجرا کنید: >> rcnn_demo
از دوچرخه و شخص شناسایی شده لذت ببرید
آموزش آشکارساز R-CNN خود در PASCAL VOC
بیایید از PASCAL VOC 2007 به عنوان مثال استفاده کنیم. pipeline اصلی عبارت است از:
extract features to disk -> train SVMs -> test
برای ذخیره ویژگی (که به طور پیش فرض در rcnn/feat_cache ذخیره می شود؛ symlink rcnn/feat_cache در جای دیگر در صورت نیاز) به حدود 200 گیگابایت فضای دیسک آزاد نیاز دارید. بهتر است حافظه پنهان ویژگی روی یک دیسک سریع و محلی باشد. قبل از اجرای pipeline ، ابتدا باید مجموعه داده PASCAL VOC 2007 را نصب کنیم.
نصب PASCAL VOC 2007
آموزش ، اعتبار سنجی ، داده های آزمون و VOCdevkit را بارگیری کنید:
wget http://pascallin.ecs.soton.ac.uk/challenges/VOC/voc2007/VOCtrainval_06-Nov-2007.tar wget http://pascallin.ecs.soton.ac.uk/challenges/VOC/voc2007/VOCtest_06-Nov-2007.tar wget http://pascallin.ecs.soton.ac.uk/challenges/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
همه این tars ها را در یک فهرست، که VOCdevkit نامیده می شود، استخراج کنید.
tar xvf VOCtrainval_06-Nov-2007.tar tar xvf VOCtest_06-Nov-2007.tar tar xvf VOCdevkit_08-Jun-2007.tar
این باید ساختار اساسی داشته باشد:
VOCdevkit/ % development kit VOCdevkit/VOCcode/ % VOC utility code VOCdevkit/VOC2007 % image sets, annotations, etc. … and several other directories …
ما از یک پیوند syml برای اتصال کد R-CNN به مجموعه داده PASCAL VOC استفاده می کنیم:
ln -sf /your/path/to/voc2007/VOCdevkit /path/to/rcnn/datasets/VOCdevkit2007
استخراج ویژگی ها
>> rcnn_exp_cache_features(‘train’); % chunk1>> rcnn_exp_cache_features(‘val’); % chunk2>> rcnn_exp_cache_features(‘test_1’); % chunk3>> rcnn_exp_cache_features(‘test_2’); % chunk4
نکته حرفه ای: در دستگاهی با یک پردازنده گرافیکی سنگین (به عنوان مثال ، k20 ، k40 ، titan) و پردازنده شش هسته ای ، دو جلسه MATLAB را هر کدام با یک matlabpool سه کارگر شروع می کنیم. سپس chunk1 و chunk2 را به صورت موازی روی آن دستگاه اجرا می کنیم. در این تنظیم ، تکمیل chunk1 و chunk2 تقریباً 8-9 ساعت طول می کشد (بسته به ترکیب و دیسک CPU/GPU شما) در یک دستگاه واحد. بدیهی است ، اگر ماشینهای بیشتری دارید ، می توانید این عملکرد را هک کنید تا حجم کار را تقسیم کنید.
آموزش مدل های R-CNN و آزمایش
اکنون برای اجرای کد آموزش و آزمایش ، از اسکریپت آزمایش های زیر استفاده کنید:
>> test_results = rcnn_exp_train_and_test()
توجه: روشهای آموزش و آزمایش به طور پیش فرض مدلها و نتایج را در rcnn/cachedir ذخیره می کند. شما می توانید این مورد را با ایجاد یک فایل پیکربندی محلی به نام rcnn_config_local.m و تعریف متغیر فهرست آزمایش EXP_DIR سفارشی کنید. برای مثال به rcnn_config_local.example.m نگاه کنید.
آموزش آشکارساز R-CNN در مجموعه داده دیگر
آموزش آشکارساز R-CNN با استفاده از مجموعه تشخیص دیگر آسان است مادامی که این مجموعه داده دارای حاشیه نویسی های جعبه محدود کننده کامل باشد (به عنوان مثال، همه نمونه های همه کلاسها دارای برچسب هستند).
برای پشتیبانی از مجموعه داده جدید، شما سه تابع را تعریف می کنید: (1) یکی که ساختاری را برمی گرداند که برچسب های کلاس و لیست تصاویر را توصیف می کند. (2) ساختاری که منطقه مورد نظر (roi) را که حاشیه نویسی های کادر محدود را توصیف می کند، باز می گرداند. و (3) یکی که عملکرد ارزیابی آزمون را ارائه می دهد.
شما می توانید پیاده سازی VASCAL VOC را به عنوان راهنمای خود دنبال کنید:
- imdb/imdb_from_voc.m (list of images and classes)
- imdb/roidb_from_voc.m (region of interest database)
- imdb/imdb_eval_voc.m (evalutation)
تنظیم دقیق CNN برای تشخیص با Caffe
ایجاد فایلهای پنجره ای برای VOC 2012 train و VOC 2012 val.
MATLAB را در فهرست rcnn راه اندازی کنید
imdb VOC 2012 train را دریافت کنید: >> imdb_train = imdb_from_voc(‘datasets/VOCdevkit2012’, ‘train’, ‘2012’);
دریافت imdb برای VOC 2012 val: >> imdb_val = imdb_from_voc(‘datasets/VOCdevkit2012’, ‘val’, ‘2012’);
ایجاد فایل پنجره برای VOC 2012 train: >> rcnn_make_window_file(imdb_train, ‘external/caffe/examples/pascal-finetuning’);
ایجاد فایل پنجره برای VOC 2012 val: >> rcnn_make_window_file(imdb_val, ‘external/caffe/examples/pascal-finetuning’);
از MATLAB خارج شوید
با Caffe تنظیم دقیق را اجرا کنید
کپی فایلهای اولیه متن اولیه
دایرکتوری ها را به external/caffe/samples/pascal-finetuning تغییر دهید
کد تنظیم دقیق را اجرا کنید (مطمئن شوید که مسیر/path/to/rcnn را با مسیر واقعی محل نصب R-CNN جایگزین کردید):
GLOG_logtostderr=1 ../../build/tools/finetune_net.bin \ pascal_finetune_solver.prototxt \ /path/to/rcnn/data/caffe_nets/ilsvrc_2012_train_iter_310k 2>&1 | tee log.txt
فایل کامل شبیه سازی و مقاله بیس را می توانید از این پروژه دانلود کنید.
سفارش پروژه مشابه دارید؟ به این صفحه مراجعه کنید.
پروژه مشابه دارید؟
برای ثبت سفارش در سیمیا می توانید از طریق اپلیکیشن سیمیا، یا فرم ثبت سفارش در سایت اقدام کرده و یا از طریق ایمیل، واتساپ، تلگرام و اینستاگرام اقدام نمایید.
اپلیکیشن سیمیا را از بازار و مایکت دانلود کنید.
سریع ترین راه پاسخگویی سیمیا، واتساپ می باشد. لینک واتساپ، اینستاگرام و تلگرام در پایین سایت وجود دارد.
نشانی ایمیل سیمیا simiya_ht@yahoo.com می باشد.
از برقراری تماس برای هماهنگی پروژه خودداری کنید، حجم بالای سفارشات به ما اجازه نمی دهد تا از طریق تلفن پاسخگوی شما عزیزان باشیم، حتما درخواست خود را به صورت مکتوب و از طریق یکی از راه های ذکر شده فوق ارسال نمایید، درخواست خود را به طور کامل و با تمام فایل ها و توضیحات لازم ارسال نمایید تا مدت زمان بررسی آن به حداقل برسد. پس از تعیین کارشناس، در اسرع وقت به شما پاسخ می دهیم.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.