محافظت از مردم در برابر مناطق خطرناک از طریق مرزهای مجازی با دید کامپیوتر

گره منبع: 807925

از آنجایی که شرکت‌ها از ورود ربات‌های مستقل و سایر تجهیزات سنگین به محل کار استقبال می‌کنند، باید اطمینان حاصل کنیم که تجهیزات می‌توانند با خیال راحت در اطراف هم تیمی‌های انسانی کار کنند. در این پست نحوه ساخت مرز مجازی با دید کامپیوتری و AWS DeepLens، دوربین ویدئویی با قابلیت یادگیری عمیق AWS که برای توسعه دهندگان برای یادگیری یادگیری ماشین (ML) طراحی شده است. با استفاده از تکنیک‌های یادگیری ماشینی در این پست، می‌توانید مرزهای مجازی برای مناطق محدود ایجاد کنید که به‌طور خودکار تجهیزات را خاموش می‌کنند یا زمانی که انسان‌ها نزدیک می‌شوند، هشدار می‌دهند.

برای این پروژه، شما یک مدل تشخیص شی سفارشی را آموزش خواهید داد آمازون SageMaker و مدل را در دستگاه AWS DeepLens مستقر کنید. تشخیص اشیا یک الگوریتم ML است که یک تصویر را به عنوان ورودی می گیرد و اشیا و مکان آنها را در تصویر شناسایی می کند. علاوه بر راه‌حل‌های مرز مجازی، می‌توانید تکنیک‌های آموخته‌شده در این پست را زمانی که نیاز دارید تشخیص دهید که اشیاء خاص در داخل یک تصویر قرار دارند یا تعداد نمونه‌های یک شی مورد نظر در یک تصویر را بشمارید، از تکنیک‌هایی استفاده کنید، مانند شمارش موارد در سطل ذخیره‌سازی یا در یک قفسه خرده فروشی

بررسی اجمالی راه حل

راهنما شامل مراحل زیر است:

  1. مجموعه داده خود را برای تغذیه در الگوریتم ML آماده کنید.
  2. آموزش یک مدل با آمازون SageMaker.
  3. مدل آزمایشی با مناطق محدودیت سفارشی.
  4. راه حل را در AWS DeepLens مستقر کنید.

ما همچنین در مورد سایر موارد استفاده در دنیای واقعی صحبت می کنیم که می توانید این راه حل را اعمال کنید.

نمودار زیر معماری راه حل را نشان می دهد.

پیش نیازها

برای تکمیل این راهنما باید پیش نیازهای زیر را داشته باشید:

مجموعه داده خود را برای تغذیه در الگوریتم ML آماده کنید

این پست از یک الگوریتم ML به نام مدل تشخیص شی استفاده می کند تا راه حلی بسازد که تشخیص دهد آیا یک فرد در یک منطقه محدود سفارشی قرار دارد یا خیر. شما از در دسترس عموم استفاده می کنید مجموعه داده تشخیص عابر پیاده در Kaggle موجود است که بیش از 2,000 تصویر دارد. این مجموعه داده دارای برچسب هایی برای اشیاء انسان و انسان مانند (مانند مانکن) است، بنابراین مدل آموزش دیده می تواند با دقت بیشتری بین انسان واقعی و وسایل مقوایی یا مجسمه ها تمایز قائل شود.

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

برای شروع آموزش مدل خود، ابتدا یک سطل S3 ایجاد کنید برای ذخیره داده های آموزشی و خروجی مدل. برای پروژه های AWS DeepLens، نام سطل S3 باید با پیشوند شروع شود deeplens-. شما از این داده ها برای آموزش یک مدل با SageMaker استفاده می کنید، یک سرویس کاملاً مدیریت شده که توانایی ساخت، آموزش و استقرار سریع مدل های ML را فراهم می کند.

آموزش یک مدل با آمازون SageMaker

شما از نوت بوک های SageMaker Jupyter به عنوان محیط توسعه برای آموزش مدل استفاده می کنید. Jupyter Notebook یک برنامه وب منبع باز است که به شما امکان می دهد اسنادی را ایجاد و به اشتراک بگذارید که حاوی کد زنده، معادلات، تجسم ها و متن روایت هستند. برای این پست ارائه می دهیم Train_Object_Detection_People_DeepLens.ipynb، یک دفترچه کامل برای شما که می توانید آن را دنبال کنید.

برای ایجاد یک مدل تشخیص شی سفارشی، باید از یک نمونه کار آموزشی دارای واحد پردازش گرافیکی (GPU) استفاده کنید. GPU ها در موازی کردن محاسبات مورد نیاز برای آموزش شبکه عصبی عالی هستند. اگرچه نوت‌بوک خود یک نمونه ml.t2.medium است، اما کار آموزشی به طور خاص از یک نمونه ml.p2.xlarge استفاده می‌کند. برای دسترسی به یک نمونه کار آموزشی دارای GPU، باید درخواست افزایش سقف خدمات را ارسال کنید به مرکز پشتیبانی AWS.

پس از دریافت افزایش حد، مراحل زیر را برای ایجاد یک نمونه نوت بوک SageMaker تکمیل کنید:

  1. در کنسول SageMaker، را انتخاب کنید نمونه های نوت بوک.
  2. را انتخاب کنید ایجاد نمونه نوت بوک.
  3. برای نام نمونه نوت بوک، یک نام برای نمونه نوت بوک خود وارد کنید.
  4. برای نوع نمونه، انتخاب کنید t2.متوسط.

این کم هزینه ترین نوع نمونه است که نمونه های نوت بوک پشتیبانی می کنند و برای این آموزش کافی است.

  1. برای نقش IAM، انتخاب کنید یک نقش جدید ایجاد کنید.

از این مطمئن شوید هویت AWS و مدیریت دسترسی نقش (IAM) به سطل S3 که قبلاً ایجاد کردید دسترسی دارد (پیشوند deeplens-).

  1. را انتخاب کنید ایجاد نمونه نوت بوک. راه اندازی نمونه نوت بوک شما ممکن است چند دقیقه طول بکشد.
  1. وقتی وضعیت صفحه نمونه های نوت بوک به InService تغییر کرد، را انتخاب کنید ژوپیتر را باز کنید برای راه اندازی نمونه نوت بوک Jupyter که به تازگی ایجاد شده است.
  2. را انتخاب کنید بارگذاری برای آپلود Train_Object_Detection_people_DeepLens.ipynb فایلی که قبلا دانلود کردید

  1. دفترچه یادداشت را باز کنید و آن را تا انتها دنبال کنید.
  2. اگر در مورد تنظیم هسته از شما سوال شد، انتخاب کنید conda_mxnet_p36.

نوت بوک Jupyter حاوی ترکیبی از سلول های متن و کد است. برای اجرای یک کد، سلول را انتخاب کرده و فشار دهید Shift + Enter. در حالی که سلول در حال اجرا است، یک ستاره در کنار سلول ظاهر می شود. وقتی سلول کامل شد، یک عدد خروجی و سلول خروجی جدید در زیر سلول اصلی ظاهر می‌شود.

  1. مجموعه داده را از سطل عمومی S3 در نمونه محلی SageMaker دانلود کنید و داده ها را از حالت فشرده خارج کنید. این را می توان با دنبال کردن کد موجود در نوت بوک انجام داد:
     !aws s3 cp s3://deeplens-public/samples/pedestriansafety/humandetection_data.zip . !rm -rf humandetection/ !unzip humandetection_data.zip -d humandetection 

  2. تبدیل مجموعه داده به فرمت (RecordIO) که می تواند به الگوریتم SageMaker وارد شود:
     !python $mxnet_path/tools/im2rec.py --pass-through --pack-label $DATA_PATH/train_mask.lst $DATA_PATH/ !python $mxnet_path/tools/im2rec.py --pass-through --pack-label $DATA_PATH/val_mask.lst $DATA_PATH/ 

  3. فایل های RecordIO را به آمازون S3 برگردانید.

اکنون که کار آماده سازی داده ها تمام شده است، آماده آموزش آشکارساز شی هستید.

انواع مختلفی از الگوریتم های تشخیص اشیا وجود دارد. برای این پست، از الگوریتم تشخیص چند باکس تک شات (SSD). الگوریتم SSD تعادل خوبی بین سرعت و دقت دارد و برای اجرا بر روی دستگاه‌های لبه‌ای مانند AWS DeepLens ایده‌آل است.

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

  1. هایپرپارامترها و کانال های داده خود را تنظیم کنید. مثال زیر را در تعریف هایپرپارامترها در نظر بگیرید:
     od_model = sagemaker.estimator.Estimator(training_image, role, train_instance_count=1, train_instance_type='ml.p2.xlarge', train_volume_size = 50, train_max_run = 360000, input_mode= 'File', output_path=s3_output_location, sagemaker_session=sess) od_model.set_hyperparameters(base_network='resnet-50', use_pretrained_model=1, num_classes=2, mini_batch_size=32, epochs=100, learning_rate=0.003, lr_scheduler_step='3,6', lr_scheduler_factor=0.1, optimizer='sgd', momentum=0.9, weight_decay=0.0005, overlap_threshold=0.5, nms_threshold=0.45, image_shape=300, num_training_samples=n_train_samples) 

نوت بوک دارای برخی از پارامترهای پیش فرض است که از قبل انتخاب شده اند. برای تشخیص عابر پیاده، مدل را برای 100 دوره آموزش می دهید. این مرحله آموزشی باید با استفاده از یک نمونه ml.p2.xlarge تقریباً 2 ساعت طول بکشد. می‌توانید ترکیب‌های مختلفی از فراپارامترها را آزمایش کنید، یا دوره‌های بیشتری را برای بهبود عملکرد آموزش دهید. برای اطلاع از آخرین قیمت ها به ادامه مطلب مراجعه کنید قیمت گذاری آمازون SageMaker.

  1. می توانید یک کار آموزشی را با یک خط کد شروع کنید و دقت را در طول زمان در کنسول SageMaker کنترل کنید:
    od_model.fit(inputs=data_channels, logs=True) 

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

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

هنگامی که کار به پایان رسید، می توانید فایل های مدل آموزش دیده را در سطل و پوشه S3 که قبلا در s3_output_location:

s3_output_location = 's3://{}/{}/output'.format(BUCKET, PREFIX)

برای این پست، ما نتایج مربوط به مجموعه اعتبار سنجی را در پایان دوره 10 و 100 نشان می دهیم. در پایان دوره دهم، ما یک نقشه اعتبارسنجی تقریباً 10 را می بینیم، در حالی که دوره 0.027 تقریباً 100 بود.

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

مدل آزمایشی با مناطق محدودیت سفارشی

قبل از استقرار مدل آموزش‌دیده در AWS DeepLens، می‌توانید با استفاده از نقطه پایانی میزبان SageMaker آن را در فضای ابری آزمایش کنید. نقطه پایانی SageMaker یک سرویس کاملاً مدیریت شده است که به شما امکان می دهد از طریق یک REST API استنتاج در زمان واقعی داشته باشید. SageMaker به شما اجازه می دهد تا به سرعت نقاط پایانی جدید را برای آزمایش مدل های خود مستقر کنید تا مجبور نباشید مدل را در نمونه محلی که برای آموزش مدل استفاده شده است میزبانی کنید. این به شما امکان می‌دهد پیش‌بینی (یا استنباط) را از مدل روی تصاویری که الگوریتم در طول آموزش ندیده است انجام دهید.

شما مجبور نیستید روی همان نوع نمونه ای که قبلا آموزش می دادید میزبانی کنید. آموزش یک کار طولانی مدت و محاسباتی سنگین است که به مجموعه متفاوتی از محاسبات و نیازهای حافظه نیاز دارد که میزبانی معمولاً نیازی به آن ندارد. شما می توانید هر نوع نمونه ای را که می خواهید برای میزبانی مدل انتخاب کنید. در این مورد، نمونه ml.p3.2xlarge را برای آموزش انتخاب کردیم، اما میزبانی مدل را در نمونه CPU ارزان‌تر، ml.m4.xlarge انتخاب کردیم. قطعه کد زیر استقرار نقطه پایانی ما را نشان می دهد.

object_detector = od_model.deploy(initial_instance_count = 1, instance_type = 'ml.m4.xlarge') 

شناسایی در یک منطقه محدودیت سفارشی (منطقه مورد علاقه)

فرمت خروجی را می توان به صورت [class_index، اعتماد_نمره، xmin، ymin، xmax، ymax] نشان داد. پیش بینی های کم اعتماد اغلب شانس بیشتری برای مثبت یا منفی کاذب دارند، بنابراین احتمالاً باید پیش بینی های کم اعتماد را کنار بگذارید. می توانید از کد زیر برای تشخیص همپوشانی کادر محدود شخص با منطقه محدود استفاده کنید.

def inRestrictedSection(ImShape = None, R1 = None, restricted_region = None, kclass = None, score = None, threshold = None): statement = 'Person Not Detected in Restricted Zone' if (kclass == 1) and (score > threshold): Im1 = np.zeros((ImShape[0],ImShape[1],3), np.int32) cv2.fillPoly(Im1, [R1], 255) Im2 = np.zeros((ImShape[0],ImShape[1],3), np.int32) if restricted_region is None: restricted_region = np.array([[0,ImShape[0]],[ImShape[1],ImShape[0]],[ImShape[1],0], [0,0]], np.int32) cv2.fillPoly(Im2, [restricted_region], 255) Im = Im1 * Im2 if np.sum(np.greater(Im, 0))>0: statement = 'Person Detected in Restricted Zone' else: statement = statement return statement 

به طور پیش فرض، کادر کامل برای حضور انسان ارزیابی می شود. با این حال، می توانید به راحتی منطقه مورد علاقه را مشخص کنید که حضور یک فرد در آن به عنوان پرخطر تلقی می شود. اگر می‌خواهید یک منطقه محدود سفارشی اضافه کنید، مختصات رئوس ناحیه نشان‌داده‌شده با [X-axis,Y-axis] را اضافه کنید و چند ضلعی را ایجاد کنید. مختصات باید در جهت عقربه های ساعت یا خلاف جهت عقربه های ساعت وارد شوند. کد زیر را ببینید:

restricted_region = None #restricted_region = np.array([[0,200],[100,200],[100,0], [10,10]], np.int32) 

کد نمونه زیر عابران پیاده را نشان می دهد که در یک منطقه محدود شناسایی شده اند:

file_name = 'humandetection/test_images/t1_image.jpg' img = cv2.imread(file_name) img =cv2.cvtColor(img,cv2.COLOR_BGR2RGB) thresh = 0.2 height = img.shape[0] width = img.shape[1] colors = dict() with open(file_name, 'rb') as image: f = image.read() b = bytearray(f) ne = open('n.txt','wb') ne.write(b) results = object_detector.predict(b, initial_args={'ContentType': 'image/jpeg'}) detections = json.loads(results) object_categories = ['no-person', 'person'] for det in detections['prediction']: (klass, score, x0, y0, x1, y1) = det if score < thresh: continue cls_id = int(klass) prob = score if cls_id not in colors: colors[cls_id] = (random.random(), random.random(), random.random()) xmin = int(x0 * width) ymin = int(y0 * height) xmax = int(x1 * width) ymax = int(y1 * height) R1 = np.array([[xmin,ymin],[xmax,ymin],[xmax,ymax], [xmin,ymax]], np.int32) cv2.polylines(img,[R1],True, (255,255,0), thickness = 5) cv2.polylines(img,[restricted_region],True, (255,0,0), thickness = 5) plt.imshow(img) print(inRestrictedSection(img.shape,R1 = R1, restricted_region= restricted_region, kclass = cls_id, score = prob, threshold=0.2)) 

تصاویر زیر نتایج ما را نشان می دهد.

راه حل را در AWS DeepLens مستقر کنید

تبدیل مدل برای استقرار به AWS DeepLens

هنگام استقرار یک مدل SSD آموزش دیده توسط SageMaker در AWS DeepLens، ابتدا باید اجرا کنید deploy.py برای تبدیل آرتیفکت مدل به یک مدل قابل استقرار:

!rm -rf incubator-mxnet !git clone -b v1.7.x https://github.com/apache/incubator-mxnet MODEL_PATH = od_model.model_data TARGET_PATH ='s3://'+BUCKET+'/'+PREFIX+'/patched/' !rm -rf tmp && mkdir tmp rm -rf tmp && mkdir tmp !aws s3 cp $MODEL_PATH tmp !tar -xzvf tmp/model.tar.gz -C tmp !mv tmp/model_algo_1-0000.params tmp/ssd_resnet50_300-0000.params !mv tmp/model_algo_1-symbol.json tmp/ssd_resnet50_300-symbol.json !python incubator-mxnet/example/ssd/deploy.py --network resnet50 --data-shape 300 --num-class 2 --prefix tmp/ssd_ !tar -cvzf ./patched_model.tar.gz -C tmp ./deploy_ssd_resnet50_300-0000.params ./deploy_ssd_resnet50_300-symbol.json ./hyperparams.json !aws s3 cp patched_model.tar.gz $TARGET_PATH

مدل خود را به AWS DeepLens وارد کنید

برای اجرای مدل در دستگاه AWS DeepLens، باید یک پروژه AWS DeepLens ایجاد کنید. با وارد کردن مدل خود به AWS DeepLens شروع کنید.

  1. در کنسول AWS DeepLens، در زیر منابع، انتخاب کنید مدل.
  2. را انتخاب کنید وارد کردن مدل.

  1. برای منبع واردات، انتخاب کنید مدل آموزش دیده خارجی.
  2. محل آمازون S3 را وارد کنید مدل پچ شده که از اجرای deploy.py در مرحله بالا ذخیره کردید.
  3. برای چارچوب مدل، انتخاب کنید MXNet.
  4. را انتخاب کنید وارد کردن مدل.

تابع استنتاج را ایجاد کنید

تابع استنتاج هر فریم دوربین را برای پیش‌بینی به مدل وارد می‌کند و هر منطق تجاری سفارشی را با استفاده از نتایج استنتاج اجرا می‌کند. شما استفاده میکنید AWS لامبدا برای ایجاد تابعی که در AWS DeepLens مستقر می کنید. این تابع استنتاج را به صورت محلی در دستگاه AWS DeepLens اجرا می کند.

ابتدا باید یک تابع Lambda برای استقرار در AWS DeepLens ایجاد کنیم.

  1. دانلود استنتاج تابع لامبدا.
  2. در کنسول لامبدا، را انتخاب کنید توابع.
  3. را انتخاب کنید ایجاد تابع.
  4. انتخاب کنید نویسنده از ابتدا.
  5. برای نام عملکرد، یک نام وارد کنید.
  6. برای زمان اجرا، انتخاب کنید پایتون 3.7.
  7. برای یک نقش اجرایی را انتخاب یا ایجاد کنید، انتخاب کنید از نقش موجود استفاده کنید.
  8. را انتخاب کنید service-role/AWSDeepLensLambdaRole.
  9. را انتخاب کنید ایجاد تابع.

  1. در صفحه جزئیات تابع، در اعمال منو ، انتخاب کنید یک فایل zip. آپلود کنید.

  1. بارگذاری کنید استنتاج لامبدا فایلی که قبلا دانلود کردید
  2. را انتخاب کنید ذخیره برای ذخیره کدی که وارد کرده اید.
  3. بر اعمال منو ، انتخاب کنید انتشار نسخه جدید.

انتشار عملکرد آن را در کنسول AWS DeepLens در دسترس قرار می دهد تا بتوانید آن را به پروژه سفارشی خود اضافه کنید.

  1. شماره نسخه را وارد کرده و انتخاب کنید منتشر کردن.

درک تابع استنتاج

این بخش شما را از طریق برخی از بخش های مهم تابع استنتاج راهنمایی می کند. ابتدا باید به دو فایل خاص توجه کنید:

  • labels.txt - حاوی نقشه خروجی از شبکه عصبی (اعداد صحیح) به برچسب های قابل خواندن توسط انسان (رشته)
  • lambda_function.py - حاوی کد برای عملکرد فراخوانی شده برای ایجاد پیش بینی در هر فریم دوربین و ارسال نتایج

در lambda_function.py ابتدا مدل را بارگیری و بهینه می کنید. در مقایسه با ماشین های مجازی ابری با پردازنده گرافیکی، AWS DeepLens قدرت محاسباتی کمتری دارد. AWS DeepLens از بهینه ساز مدل Intel OpenVino برای بهینه سازی مدل آموزش دیده در SageMaker برای اجرا بر روی سخت افزار خود استفاده می کند. کد زیر مدل شما را برای اجرای محلی بهینه می کند:

client.publish(topic=iot_topic, payload='Optimizing model...') ret, model_path = mo.optimize('deploy_ssd_resnet50_300', INPUT_W, INPUT_H) # Load the model onto the GPU. client.publish(topic=iot_topic, payload='Loading model...') model = awscam.Model(model_path, {'GPU': 1}) 

سپس فریم در هر فریم مدل را روی تصاویر دوربین اجرا می کنید. کد زیر را ببینید:

while True: # Get a frame from the video stream ret, frame = awscam.getLastFrame() if not ret: raise Exception('Failed to get frame from the stream') # Resize frame to the same size as the training set. frame_resize = cv2.resize(frame, (INPUT_H, INPUT_W)) # Run the images through the inference engine and parse the results using # the parser API, note it is possible to get the output of doInference # and do the parsing manually, but since it is a ssd model, # a simple API is provided. parsed_inference_results = model.parseResult(model_type, model.doInference(frame_resize)) 

در نهایت، نتایج پیش‌بینی متن را به ابر ارسال می‌کنید. مشاهده نتایج متن در فضای ابری یک راه راحت برای اطمینان از اینکه مدل به درستی کار می کند است. هر دستگاه AWS DeepLens دارای یک iot_topic اختصاصی است که به طور خودکار برای دریافت نتایج استنتاج ایجاد می شود. کد زیر را ببینید:

# Send results to the cloud client.publish(topic=iot_topic, payload=json.dumps(cloud_output)) 

یک پروژه سفارشی AWS DeepLens ایجاد کنید

برای ایجاد یک پروژه جدید AWS DeepLens، مراحل زیر را انجام دهید:

  1. در کنسول AWS DeepLens، در پروژه ها صفحه ، انتخاب کنید ایجاد پروژه.
  2. برای نوع پروژه، انتخاب کنید یک پروژه خالی جدید ایجاد کنید.
  3. را انتخاب کنید بعدی.

  1. نام پروژه خود را yourname-pedestrian-detector-.
  2. را انتخاب کنید اضافه کردن مدل.
  3. مدلی را که ایجاد کرده اید انتخاب کنید.
  4. را انتخاب کنید اضافه کردن تابع.
  5. تابع Lambda را که قبلاً ایجاد کردید با نام جستجو کنید.
  6. را انتخاب کنید ایجاد پروژه.
  7. بر پروژه ها صفحه، پروژه ای را که می خواهید اجرا کنید انتخاب کنید.
  8. انتخاب کرد به دستگاه مستقر شود.
  9. برای دستگاه هدف، دستگاه خود را انتخاب کنید.
  10. را انتخاب کنید مرور.
  11. تنظیمات خود را بررسی کرده و انتخاب کنید گسترش.

بسته به سرعت شبکه ای که AWS DeepLens شما به آن متصل است، استقرار ممکن است تا 10 دقیقه طول بکشد. هنگامی که استقرار کامل شد، باید یک بنر سبز رنگ در صفحه با این پیام مشاهده کنید، "تبریک، مدل شما اکنون به صورت محلی در AWS DeepLens اجرا می شود!"

برای دیدن خروجی متن، در صفحه جزئیات دستگاه به سمت پایین حرکت کنید خروجی پروژه بخش. برای کپی کردن موضوع، دستورالعمل های بخش را دنبال کنید و به قسمت بروید AWS IoT Core کنسول برای اشتراک در موضوع. شما باید نتایج را مانند تصویر زیر ببینید.

برای دستورالعمل های گام به گام در مورد مشاهده جریان ویدئو یا خروجی متن، نگاه کنید مشاهده نتایج از AWS DeepLens.

موارد استفاده در دنیای واقعی

اکنون که پیش‌بینی‌هایی از مدل خود دارید که روی AWS DeepLens اجرا می‌شود، بیایید آن پیش‌بینی‌ها را به هشدارها و بینش‌ها تبدیل کنیم. برخی از رایج ترین کاربردهای پروژه ای مانند این عبارتند از:

  • درک تعداد افرادی که در یک روز معین وارد یک منطقه ممنوعه شده‌اند تا سایت‌های ساخت‌وساز بتوانند نقاطی را شناسایی کنند که به علائم ایمنی بیشتری نیاز دارند. این را می توان با جمع آوری نتایج و استفاده از آنها برای ایجاد یک داشبورد با استفاده از آن انجام داد آمازون QuickSight. برای جزئیات بیشتر در مورد ایجاد داشبورد با استفاده از QuickSight، نگاه کنید با AWS DeepLens و GluonCV یک ردیاب وضعیت کار از خانه بسازید.
  • جمع آوری خروجی از AWS DeepLens و پیکربندی Raspberry Pi برای به صدا درآوردن هشدار هنگامی که شخصی در حال قدم زدن به یک منطقه محدود است. برای جزئیات بیشتر در مورد اتصال دستگاه AWS DeepLens به دستگاه Raspberry Pi، نگاه کنید ساخت سطل زباله با AWS DeepLens.

نتیجه

در این پست، یاد گرفتید که چگونه یک مدل تشخیص اشیا را آموزش دهید و آن را در AWS DeepLens برای شناسایی افرادی که وارد مناطق ممنوعه می شوند، مستقر کنید. شما می توانید از این آموزش به عنوان مرجعی برای آموزش و استقرار پروژه های تشخیص شی سفارشی خود در AWS DeepLens استفاده کنید.

برای مشاهده جزئیات بیشتر این آموزش و سایر آموزش‌ها، نمونه‌ها و ایده‌های پروژه با AWS DeepLens، نگاه کنید به دستور العمل های AWS DeepLens.


درباره نویسنده

یاش شاه یک دانشمند داده در آزمایشگاه راه حل های آمازون ML است، جایی که او روی طیف وسیعی از موارد استفاده از یادگیری ماشین از مراقبت های بهداشتی گرفته تا تولید و خرده فروشی کار می کند. او سابقه ای رسمی در عوامل انسانی و آمار دارد و قبلاً بخشی از تیم آمازون SCOT بود که محصولاتی را برای راهنمایی فروشندگان 3P با مدیریت موجودی کارآمد طراحی می کرد.

فو نگوین یک مدیر محصول برای AWS Panorama است. او محصولاتی می‌سازد که به توسعه‌دهندگان با هر سطح مهارتی، مقدمه آسان و عملی یادگیری ماشین را می‌دهند.

منبع: https://aws.amazon.com/blogs/machine-learning/protecting-people-through-virtual-boundaries-computer-vision/

تمبر زمان:

بیشتر از وبلاگ یادگیری ماشین AWS