۶ تیر ۱۴۰۴

Techboy

اخبار و اطلاعات روز تکنولوژی

یادگیری ماشین در جاوا در حال پردازش تصویر است

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

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

علاقه به یادگیری ماشین طی سالهای اخیر به طور پیوسته افزایش یافته است. به طور خاص ، شرکت ها اکنون از یادگیری ماشین برای تشخیص تصویر در طیف گسترده ای از موارد استفاده استفاده می کنند.  برنامه هایی در صنعت خودرو ، مراقبت های بهداشتی ، امنیت ، خرده فروشی ، پیگیری محصول خودکار در انبارها ، کشاورزی و کشاورزی ، و حتی ترجمه در زمان واقعی با اشاره به دوربین تلفن خود .  با تشکر از یادگیری ماشین و تشخیص بصری ، ماشین ها می توانند تشخیص سرطان و Covid-19 در اسکن MRI و CT. 

امروز ، بسیاری از این راه حل ها در درجه اول در پایتون با استفاده از ابزارهای منبع باز و اختصاصی ML ساخته شده اند که هر کدام دارای API های خاص خود هستند. با وجود محبوبیت جاوا در شرکت s ، هیچ استانداردی برای توسعه برنامه های یادگیری ماشین در جاوا وجود ندارد. href = “https://www.jcp.org/en/jsr/detail؟id=381” rel = “nofollow”> اجرای href = “https://djl.ai/” rel = “nofollow”> کتابخانه جاوا عمیق (djl) ، a کتابخانه منبع باز توسعه یافته توسط آمازون برای ایجاد یادگیری ماشین در جاوا. href = “https://github.com/awslabs/djl/tree/master/tensorflow” rel = “nofollow”> tensorflow ، mxnet ، و pytorch با استفاده از بسته بندی نیازهای پردازش تصویر ، این یک انتخاب انعطاف پذیر و ساده است

در این مقاله ، ما نشان می دهیم که چگونه توسعه دهندگان جاوا می توانند از JSR-381 VisRec API برای اجرای طبقه بندی تصویر یا تشخیص شی با مدل های از پیش آموزش داده شده DJL در کمتر از ۱۰ خط کد استفاده کنند. ما همچنین نشان می دهیم که چگونه کاربران می توانند در کمتر از ۱۰ دقیقه با دو مثال از مدل های یادگیری ماشین از پیش آموزش استفاده کنند. بیایید شروع کنیم!

شناخت ارقام دستنویس با استفاده از یک مدل از پیش آموزش دیده

یک کاربرد مفید و مثال “سلام جهان” از شناخت بصری ، شناخت ارقام دستنویس است.  شناخت ارقام دستنویس برای یک انسان آسان است. به لطف توانایی پردازش و همکاری زیر سیستم های تطبیق بصری و الگوی در مغز ما ، معمولاً می توانیم رقم صحیح را از یک سند دست نوشته شیب دار تشخیص دهیم. با این حال ، این کار به ظاهر ساده به دلیل بسیاری از تغییرات احتمالی برای یک دستگاه بسیار پیچیده است.  این یک مورد استفاده خوب برای یادگیری ماشین ، به طور خاص تشخیص بصری است. repo jsr 381 دارای به عنوان مثال JSRILOWOLLED> استفاده می کند. رقم این مثال ، رقم های دستنویس را در برابر mnistet Handwrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittrittritrittrittritrittrittritritts بیش از ۶۰k تصویر.  پیش بینی آنچه یک تصویر نشان می دهد طبقه بندی تصویر نامیده می شود.  مثال ما به یک تصویر جدید نگاه می کند و تلاش می کند تا احتمال اینکه رقم خاص آن چیست ، تعیین کند.

برای این کار ، VisRec API یک رابط ImageClassifer را فراهم می کند که می تواند برای کلاس های خاص جاوا برای تصاویر ورودی با استفاده از پارامترهای عمومی تخصص داشته باشد. همچنین یک روش طبقه بندی () را ارائه می دهد که طبقه بندی تصویر را انجام می دهد و نقشه ای از احتمالات کلاس را برای کلیه کلاسهای تصویر ممکن برمی گرداند. با کنوانسیون در API VISREC ، هر مدل یک روش سازنده استاتیک () را ارائه می دهد که یک شیء سازنده مربوطه را برمی گرداند و به توسعه دهنده اجازه می دهد تا تمام تنظیمات مربوطه را پیکربندی کند ، به عنوان مثال. ImageHeight ، ImageWidth.

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

پس از ساختن شیء طبقه بندی ، تصویر ورودی را به طبقه بندی کننده تغذیه کنید تا تصویر را تشخیص دهید.

Screen Shot 2020 12 18 در 2.43.09 PM

اجرای این کد خروجی زیر را به دست می آورد.

Screen Shot 2020 12 18 در 2.44.26 PM

مدل پنج گزینه ممکن برای رقم تعبیه شده در تصویر با احتمالات مرتبط برای هر گزینه را مشخص می کند. طبقه بندی کننده به درستی پیش بینی می کند که رقم زیرین ۰ با احتمال قریب به اتفاق ۹۹.۹۸ ٪

است

یکی از تعمیمهای واضح این مورد این است که وقتی نیاز به تشخیص اشیاء مختلف در همان تصویر دارید ، چه کاری باید انجام دهید؟

شناخت اشیا

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

مکانیسم SSD یک پیشرفت اخیر در یادگیری ماشین است که به سرعت اشیاء را به سرعت تشخیص می دهد ، در حالی که همچنین در مقایسه با مدلهای محاسباتی فشرده تر ، دقت را حفظ می کند. شما می توانید در مورد مدل SSD از طریق کسب کنید. href = "https://towardsdatascience.com/understanding-sd-multibox-real-time-object-detection-in-deep-learning-495efbab" rel = "nofollow"> درک ssd multibox-تشخیص شیء در زمان واقعی پست وبلاگ و این غواصی به کتاب یادگیری عمیق .

با اجرای DJL از JSR-381 ، کاربران به اجرای از پیش آموزش داده شده از مدل SSD که برای استفاده فوری آماده است ، دسترسی دارند. DJL از modelzoo برای ساده سازی استفاده از مدل ها استفاده می کند. در بلوک کد زیر ، شما یک مدل از پیش آموزش داده شده را با modelzoo.loadmodel () بارگذاری می کنید ، یک کلاس ردیاب شی را فوری می کنید و این مدل را روی یک تصویر نمونه اعمال می کنید.

Screen Shot 2020 12 18 در 2.45.25 PM

در اینجا تصویری جدید است که می توانیم از آن استفاده کنیم.

Screen Shot 2020 12 18 در 2.46.23 PM

اجرای کد ما روی این تصویر نتیجه زیر را به دست می آورد:

Screen Shot 2020 12 18 at 2.47.14 pm

اگر می خواهید جعبه های محدود را در اطراف هر شیء شناسایی شده بر روی تصویر اضافه کنید ، می توانید فقط با چند خط کد اضافی استفاده کنید. برای اطلاعات بیشتر ، به کامل githoll .

Screen Shot 2020 12 18 at 2.48.10 pm

بعدی چیست؟

در این پست ، ما فقط سطح آنچه را که می توانید با اجرای DJL API JSR-381 انجام دهید ، خراش دادیم. شما می توانید بسیاری از مدل های دیگر را با مخزن مدل های از پیش آموزش در ModelZoo کشف و پیاده سازی کنید ، یا مدل خود را وارد کنید.

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

موارد استفاده زیادی برای DJL وجود دارد ، شما می توانید یک برنامه پاسخگویی سوال برای سرویس مشتری ، برآورد pose را اجرا کنید در پوزهای یوگا یا کیت استارت بوت بهار همچنین باعث می شود که ادغام ML با برنامه های بوت بهار خود ساده باشد. شما می توانید در مورد DJL از طریق وبلاگ مقدماتی ، مخزن نمونه ها . بروید به github on on slack و با ما جمع آوری کنید href = "https://join.slack.com/t/deepjavalibrary/shared_invite/enqtodqyotyxndexmta3lwe 5yjvlmwfmntk3ztjnte4ndiwndc4nja2mjzkm2vmm2m3mji4mtfimzfkotvlztm1ngvlzti0otlknjhndi " rel = "nofollow"> کانال .