این دومین مقاله از این سری است که به کشف و درک معماری و عملکرد YOLO (شما فقط یکبار نگاه می کنید ).
برای درک دقیق الگوریتم های بینایی رایانه در CNN ، CNN مبتنی بر منطقه (R-CNN) ، سریع R-CNN ، سریعتر R-CNN کلیک کنید. این قسمت 1 است.
در مقاله بعدی ، کد YOLO v3
YOLO- شما فقط یکبار نگاه می کنید پاسخ الگوریتم های بهتر ، سریعتر و دقیق بینایی رایانه است.
بعد خروجی چقدر خواهد بود؟
تقسیم تصویر به یک شبکه S × S.
هر سلول شبکه جعبه های محدود کننده B ، اطمینان برای آن جعبه ها و احتمالات کلاس C را پیش بینی می کند.
هر کادر محدود کننده شامل 5 پیش بینی است: bx ، by ، bw ، bh و اعتماد
بعد خروجی S × S × (B ∗ (1 + 4) + C) تنسور
به عنوان مثال ، اگر تصویر را به یک شبکه 7 7 7 و هر کدام تقسیم کنیم سلول شبکه 2 جعبه محدود را پیش بینی می کند و ما 20 کلاس دارای برچسب داریم ، در این صورت خروجی 7 x 7 x (2*5+20) = 7 x 7 x 30 تنسور
IoU بین مرز حقیقت زمین چیست جعبه و کادر محدود کننده پیش بینی شده؟
IoU تقاطع را بر روی اتحاد دو جعبه محدود کننده ، جعبه محدود کننده برای حقیقت زمین و جعبه محدود کننده برای کادر پیش بینی شده توسط الگوریتم
وقتی IoU 1 است ، این بدان معناست که پیش بینی شده و زمین- جعبه های محدود کننده حقیقت کاملاً با هم تداخل دارند. بیشتر از 0.5؟
سرکوب کنید. برای مثال ، اگر سه مستطیل با 0.6 و 0.7 و 0.9 داشته باشیم. برای شناسایی IoU وسیله نقلیه در تصویر زیر ، Non-Max Suppression جعبه محدوده را با IoU 0.9 نگه می دارد و جعبه های محدود کننده باقی مانده 0.6 و 0.7 IoU را سرکوب می کند.
برای خودرو در تصویر زیر ، Non-Max Suppression IoU را با 0.8 نگه می دارد و جعبه محدود IoU را با 0.7
معماری شبکه YOLO با الهام از مدل GoogLeNet برای طبقه بندی تصویر
شبکه تشخیص YOLO دارای 24 لایه متحرک دنبال شده است توسط 2 لایه کاملاً متصل شده. لایه ها از لایه های قبلی فاصله دارند. تشخیص
YOLO از یک تابع فعال سازی خطی برای لایه نهایی و ReLU نشتی برای تمام لایه های دیگر.
YOLO مختصات جعبه های محدود کننده را مستقیماً با استفاده از لایه های کاملاً متصل به هم در بالای استخراج کننده ویژگی های پیچشی پیش بینی می کند. YOLO فقط 98 جعبه در هر تصویر را پیش بینی می کند.
Fast YOLO یک نوع سریع از یولو از 9 لایه کانولوشن به جای 24 مورد استفاده در YOLO استفاده می کند و همچنین از فیلترهای تب استفاده می کند.
اندازه شبکه بین YOLO و Fast YOLO متفاوت است اما همه پارامترهای آموزش و آزمایش بین YOLO و Fast YOLO یکسان است.
خروجی نهایی شبکه ما تنسور 7 × 7 × 30 پیش بینی است.
Anchor box یا Prior چیست و چه کمکی به آن می کند؟
از جعبه های لنگر برای تشخیص اجسام متعدد ، اشیاء با مقیاس های مختلف استفاده می شود ، و اجسام همپوشان این باعث افزایش سرعت و کارایی برای تشخیص شی می شود.
جعبه های لنگر همه پیش بینی های شی را یکجا ارزیابی می کنند و نیازی به اسکن تصویر با استفاده از یک پنجره کشویی ندارید
جعبه های لنگر مجموعه ای از پیش تعیین شده هستند جعبه های محدود کننده با ارتفاع و عرض مشخص. این کادرها به گونه ای تعریف شده اند که مقیاس و نسبت ابعاد کلاسهای شیء خاصی را که می خواهید تشخیص دهید ، ثبت کنید.
YOLOv2 کل تصویر را به 13 سلول شبکه 13 X 13 تقسیم می کند. YOLOv2 خوشه بندی k-means را بر روی ابعاد جعبه های محدود کننده اجرا می کند تا پیشرو یا لنگرهای خوبی برای مدل بدست آورد. YOLOv2 در بر داشت k = 5 عملکرد بهتری را ارائه می دهد.
Red is Ground Truth. جعبه های آبی 5 جعبه لنگربرای پیش بینی چندین اشیاء در یک تصویر ، YOLOv2 هزاران پیش بینی می کند. تشخیص شیء نهایی با حذف جعبه های لنگر که متعلق به کلاس پس زمینه است انجام می شود و بقیه با نمره اطمینان آنها فیلتر می شود. ما جعبه های لنگر را با IoU بزرگتر از 0.5 می یابیم. جعبه های لنگر با بیشترین نمره اطمینان با استفاده از سرکوب Non-Max که قبلاً توضیح داده شد ، انتخاب می شوند.
https://pjreddie.com/media/files/papers/yolo.pdf
https://arxiv.org/pdf/1612.08242. pdf
https://pjreddie.com/media/files/papers/YOLOv3.pdf
http://deeplearning.csail.mit.edu/instance_ross.pdf
نوشته کریس برگ ، سینکلر دیویدسون ، جیسون پاتس و بیل تولوه
در مقاله 1945 خود "استفاده از دانش در جامعه" ، فردریش هایک ابتدا مشکل دانش را جلب کرد. اطلاعات در سراسر یک اقتصاد توزیع می شود. هیچ برنامه ریز مرکزی نمی تواند به طور م itثر آن را گرد هم آورد.
بدیهی است هایک در مورد اقتصاد انسانی صحبت می کرد ، جایی که مردم با مردم مبادله می کردند. اما ماشین ها نیز از مشکلات دانش رنج می برند. این حوزه اقتصاد نانو است - که ما پیشنهاد می کنیم مطالعه و ارزیابی…
باشداگر در پروژه خود کتابخانه ای را ادغام می کنید که دارای اشکال است یا باید تعدادی تغییر در آن ایجاد کنید ، اما نمی توانید منتظر بمانید تا یک Snapshot منتشر شود تا بتوانید آن را آزمایش کنید ، می توانید آن را به صورت محلی منتشر کرده و با انجام این مراحل تغییرات را نشان دهید.
فرض کنید شما به کد آن دسترسی دارید کتابخانه ، سپس فقط آن را در رایانه خود بارگیری کنید ، توسط یک کنسول ترمینال به مسیر اصلی بروید و دستورات زیر را برای انتشار محلی فایلهای Maven اجرا کنید:
./gradlew clean
. /gradlew build
./gradlew publishedToMavenLocal
پس از اتمام ، همه فایل های *.pom و *.aar در پوشه /.m2 محلی شما قرار خواهند گرفت.
PublishToMavenLocal یک وظیفه داخلی افزونه maven-published از Gradle است و اصلاً چیزی را در Artifactory (JCenter/Maven) از راه دور منتشر نمی کند.
در پروژه ای که در آن کتابخانه را ادغام می کنید: main build.gradle
نسخه اصلی { مخازن { mavenLocal () ...
همه پروژه ها { مخازن { mavenLocal () ...
توجه داشته باشید که mavenlLocal () همیشه ابتدا کتابخانه های موجود در پوشه /.m2 را برمی دارد.
→ همین!
اکنون ، برای آزمایش اینکه آیا کار می کند ، فقط یک خط در کتابخانه را تغییر دهید و در مسیر پروژه کتابخانه خود ، دستور gradle زیر را
./gradlew build publishedToMavenLocal
… و پس از یک همگام سازی درجه ای ، آن تغییرات را در پروژه خود مشاهده خواهید کرد.
هنگامی که به درستی آزمایش شد ، می توانید درخواست Pull را ارسال کنید تا تغییرات خود را به عنوان بخشی از تصویر بعدی وارد کنید.
برنامه dapp پتانسیل توکن سازی و مزایای اجرای خدمات اینترنت باز گسترده در رایانه اینترنتی را نشان می دهد.
CanCan یک سرویس شبکه اجتماعی غیر متمرکز اشتراک گذاری ویدیو است که به مردم امکان می دهد فیلم ها را مستقیماً از اینترنت بر روی دستگاه تلفن همراه خود پخش و به اشتراک بگذارند. بنیاد DFINITY نمونه برنامه dapp را برای نشان دادن توانایی های رایانه اینترنتی ، اولین بلاک چین در جهان که با سرعت وب با ظرفیت نامحدود اجرا می شود ، توسعه داد.
CanCan نشان می دهد که چگونه توسعه دهندگان می توانند برنامه های باز و غیر متمرکز را در رایانه اینترنتی ایجاد کنند که تجربه های کاربری فوق العاده ای را ارائه می دهد. این برنامه برخی از روش های زیادی را که dapp می تواند از tokenization برای جذب و ایجاد انگیزه در کاربران و سایر مخاطبان استفاده کند ، نشان می دهد ، حلقه های ویروسی ایجاد می کند که تعامل را عمیق تر و حتی کاربران بیشتری را جذب می کند. CanCan تنها یک نمونه از انواع برنامه های کاربردی است که فقط می تواند در یک بلاک چین بی نهایت مقیاس پذیر مانند رایانه اینترنتی توسعه داده شود.
ما اکنون همه کد منبع را برای CanCan عمومی کرده ایم ، ارائه آن به جامعه توسعه دهندگان به عنوان مدلی برای الهام بخش ایجاد خدمات اینترنت باز در رایانه اینترنتی. توسعه دهنده ای که کد را بررسی می کند ، موارد زیر را پیدا می کند:
CanCan همچنین نشان می دهد که چگونه نشانه ها می توانند کاربران را برای تولید ، تعامل و تعدیل محتوا ترغیب کنند - به طور م usersثر کاربران را تبدیل به اعضای تیم مدیریت dapp می کند.
هر 24 ساعت ، هر کاربر CanCan 10 "فوق العاده پسند" دریافت می کند که می تواند به فیلم ها در فید خود اهدا کند. اگر ویدیویی به اندازه کافی سوپر لایک دریافت کند ، ویروسی می شود. وقتی ویدئویی ویروسی می شود ، Super Likers اولیه امتیازهای پاداشی را جمع آوری می کند که بعداً می توانند برای جوایز استفاده کنند. CanCan همچنین به کاربران اجازه می دهد تا با ارسال نکاتی در قالب امتیاز پاداش ، قدردانی خود را از سازندگان نشان دهند. وقتی ویدیوها را بارگذاری می کنند ، نکات را دریافت می کنند و وقتی ویدیوهای آنها از طریق سوپر لایک ها ویروسی می شوند ، سازندگان ویدئو امتیاز دریافت می کنند.
حتی امکانات بیشتری برای استفاده از توکن برای جذب کاربران و سایر مخاطبان وجود دارد. به عنوان مثال ، CanCan می تواند دوره های متناوب "Drop Days" را ارائه دهد که در آن کاربران برای پاداش های توکن CanCan که به آنها امکان می دهد در مورد ویژگی ها و قابلیت ها رای دهند ، پاداش دریافت می کنند و برای مشارکت در حکومت پاداش دریافت می کنند.
CanCan می تواند به طور مشابه کاربران را تشویق کند برای کمک به تعدیل محتوا در تنظیمات نمایه dapp ، کاربران می توانند برای دریافت محتوای تازه بارگذاری شده اما بدون تعدیل در فید خود ، مادامی که بتوانند تأیید کنند که سن آنها 18 سال یا بیشتر است. وقتی محتوایی را می بینند که به نظر آنها نامناسب است ، می توانند آن را پرچم گذاری کنند. اگر آستانه خاصی از تعدیل کنندگان دیگر محتوا را نامناسب نشان دهد ، کاربر برای انجام اقدامات امتیاز پاداش دریافت می کند.
CanCan نیازی به سرور وب ، شبکه تحویل محتوا ، فایروال ، پایگاه داده خارجی برای حفظ وضعیت یا هرگونه پیچیدگی دیگری ندارد که ما آن را اجتناب ناپذیر پذیرفته ایم در میراثنرم افزار. dapp از چندین ماژول حالت دار یا قراردادهای هوشمند "canister" تشکیل شده است. همه داده ها به سادگی با اعلام ساختارهای استاندارد داده مانند آرایه ها یا نقشه ها در داخل قوطی حفظ می شوند.
یک قوطی در حال خدمت به دارایی های جلویی است ، که ما در TypeScript با استفاده از چارچوب React نوشته ایم ، اما هیچ چیز شما را از استفاده از JavaScript Vue یا Angular یا حتی vanilla منع می کند. یک قوطی دوم داده ها را نگه می دارد - همه داده ها. توجه داشته باشید که این فقط فراداده یا هش های محتوا نیست بلکه خود ویدیو بایت می کند ، به قطعات بریده شده و ذخیره می شود تا بعداً بازیابی ، بازسازی و در dapp جلویی پخش شود.
چالش دیگری که ما به خودمان دادیم این بود که یک dapp بسازیم که می تواند توسط پروتکل محدودیتی نداشته باشد. این بدان معناست که میلیون ها ویدئو و تریلیون ها بایت را مدیریت کنید. اولین رویکرد ما یک جدول هش توزیع شده (DHT) بر اساس Kademlia و اجرا شده در Motoko بود. قسمت جلویی یک ویدئو از قسمت پشتی درخواست می کند ، که به صورت مستقیم با داده ها پاسخ داده می شود یا داده ها را به صورت بازگشتی از یکی از همتایان خود در DHT درخواست می کند.
توانایی خرد کردن و ایجاد تعادل بین ذخیره سازی در چندین قوطی مقیاس پذیری مورد نظر ما را به ما داد ، اما ما همچنان فشار می آوردیم. ما قادر به نوشتن CanCan بدون یک API پشتیبان سنتی بودیم. قسمت جلویی مستقیماً بر روی رابط نسبتاً ساده DHT و روشهای "دریافت" و "قرار دادن" آن ساخته شده است. در حقیقت ، اگر همان رابط را حفظ کنید ، می توانید پیاده سازی را کاملاً با یکی که به زبانی کاملاً متفاوت نوشته شده است مانند یک قوطی نوشته شده در Rust - کاملاً عوض کنید - این دقیقاً همان کاری است که ما انجام دادیم.
هر برنامه نمایشی نمایشی است قصد دارد برخی مفاهیم بدیع را به مردم آموزش دهد. با شروع ساختن ویژگی های بیشتر و بیشتر ، متوجه شدیم که مقیاس بندی نوآوری بزرگتری نیست که می خواستیم با مردم به اشتراک بگذاریم ، زیرا بزرگترین مشکل کارآفرینان اول کشش و دوم مقیاس بندی است. بنابراین ما شروع به بازنویسی قسمت پایانی CanCan در Motoko در مورد داستانهای اصلی که در Internet Computer Primer خود بحث کرده ایم ، کردیم تا بر API های تمیز و کشش تمرکز کنیم. -پایان در رایانه اینترنتی در حالی که از نشانه ها برای جذب و ایجاد انگیزه برای تعامل با dapp استفاده می کنید. این فقط یک نگاه اجمالی به آنچه در رایانه اینترنتی امکان پذیر است ، است.
ما مشتاقانه منتظر ساختن آنچه می سازید هستیم.
_____
امروز ، کاخ سفید اعلام کرد که سالانه 200 میلیون دلار به آموزش علوم رایانه در مدارس آمریکا اختصاص می دهد. برخلاف پیشنهادات مشابه در سالهای گذشته ، اقدام امروز بلافاصله کمک مالی به مدارس می کند. این بودجه علاوه بر گسترش دسترسی به علوم رایانه در مدارسی که قبلاً آن را آموزش نمی دادند ، وعده افزایش مشارکت زنان و اقلیت های کم نماینده را می دهد.
این بودجه تلاش ها را برای اطمینان از این که هر دانش آموز در هر مدرسه فرصت دارد ، افزایش می دهد. یادگیری علوم کامپیوتر به عنوان بخشی از یک آموزش جامع. برای طرفداران افزایش دسترسی و تنوع در CS ، این نقطه اوج سالهای شتاب است که در کلاسهای درس شروع شد ، در تمام مناطق مدرسه گسترش یافت و حمایت رهبران کسب و کار و مقامات منتخب در سراسر جهان را جلب کرد.
در زمانی که مشاغل رایانه پردرآمدترین ، سریع ترین رشد و بزرگترین بخش دستمزد جدید هستند و بر هر صنعت در هر ایالت تأثیر می گذارد ، دیگر محدودیتی برای دسترسی مدارس ما به این موضوع اساسی وجود ندارد. فرزندان ما مستحق شرایط برابر هستند - فرصت یادگیری علوم کامپیوتر نباید به رنگ پوست دانش آموز یا محل زندگی او محدود شود.
انگلستان ، ژاپن ، ایرلند و دهها نفر دیگر سایر کشورها از برنامه خود برای افزودن علوم کامپیوتر به برنامه درسی مدارس خود خبر داده اند. عقب ماندگی برای آمریکا غیرقابل قبول است. کشوری که رایانه شخصی ، اینترنت و تلفن هوشمند را اختراع کرد ، باید در علوم رایانه نیز پیشرو باشد.
و امروزه ، آمریکا به لطف حامیان بی شماری از این هدف ، که از شما شروع می شود ، در علوم رایانه پیشتاز است. ، دانش آموزان و معلمان ، و همچنین سازمانهای همکار و دولتهای محلی. این که آیا شما یک طومار در Code.org امضا کرده اید یا از دوره های ما در کلاس خود استفاده کرده اید ، به ایجاد یک حرکت مردمی کمک کرده اید که تحصیلات را در سطح جهانی تغییر می دهد.
متحد شدن برای کودکان ، در زمان های تقسیم شده
شکاف در کشور ما به همه ما آسیب می رساند. در میان سیاست ، دانشجویان آمریکایی نشان دهنده امید ما هستند. همه ما برای فرزندانمان فرصت می خواهیم و هیچ راهی بهتر از آماده سازی آنها برای مشاغل آینده وجود ندارد.
این جنبش در طیف سیاسی حامیانی در شهرها ، حومه شهرها دارد. یا جوامع روستایی 90٪ والدین از علوم رایانه در مدارس حمایت می کنند.
ممکن است آمریکایی ها از نظر سیاست ما دچار اختلاف شوند ، اما ما با فداکاری خود نسبت به فرزندان خود متحد شده ایم. همه ما به فرصت و رویای آمریکایی اعتقاد داریم.
Code.org هرگز از هیچ نامزد ، سیاستمدار یا حزب سیاسی تأیید نکرده است. ما با روسای جمهور و فرمانداران هر دو طرف و با نخست وزیران بین المللی همکاری نزدیک کرده ایم تا از فرصت حمایت کنیم. مانند بسیاری دیگر ، ما از تفرقه افکنی در سیاست امروز وحشت زده ایم ، در زمانی که ما به راه حل های مشارکتی برای مشکلات جهان نیاز داریم. با توجه به تمرکز بر آموزش ، از کاهش پیشنهاد شده در بودجه آموزش و پرورش ناراحت شده ایم. و با توجه به مأموریت و تمرکز ما بر تنوع ، ما بی چون و چرا لحن نژادپرستی را که وارد حوزه سیاسی شده است ، محکوم می کنیم.
امروز ما این شانس را داریم که سیاست را کنار بگذاریم و دور هم جمع شویم و از فرصت برای همه جوانان خود حمایت کنیم. ، و برای ساختن آینده ملت خود.تلاش برای گسترش علوم رایانه ، اطلاعیه امروز آغاز جدیدی را نشان می دهد - این فرصتی جدید برای هر مدرسه است که پیشنهادات علوم رایانه خود را گسترش دهد. این کار تازه شروع شده است و تا زمانی که هر ایالت و ناحیه مدرسه ای در آمریکا برای آموزش علوم رایانه با کیفیت بالا قدم نگذارد ، کار انجام نمی شود.
به 600000 معلم Code.org که کمک کرده اند علوم رایانه را سریع ترین درس در آموزش مدرن کنید ، می خواهم از علاقه شما تشکر کنم.
و هر آموزگاری را تشویق می کنم که به جنبش علوم کامپیوتر بپیوندد. دانش آموزان شما آینده ما هستند. مهم نیست که شما به شاگردان خود جمع و تفریق ، خواندن و نوشتن یا کد نویسی را آموزش می دهید ، مهمترین کار در جهان است.
امروز برای هر والدین ، دانش آموزان ، معلمان یا سازمان شریکی که به مأموریت ما اعتقاد دارد ، که هر دانش آموز در هر مدرسه سزاوار فرصت یادگیری علوم کامپیوتر است. دستور کار سیاسی: در مورد فرزندان ما و آینده آنها ، و در مورد شما ، و قدرت جنبش جهانی ما برای دانش آموزان است. از صمیم قلب متشکرم.
هادی پرتوی ، Code.org