د نندارتون په دې مقاله کې، زه غواړم چې زما تجربې د AI پر بنسټ د خونې سیل تشخیص سره د روبوټ میکروسکوپ لپاره د iOS غوښتنلیک پراختیا لپاره شریک کړي - دا څنګه جوړ شوی، موږ ته اړتیا لرئ چې د حل کولو لپاره، موږ سره مخکښ شوي ټاپوونه، او څنګه د iPhone د لابراتوار په توګه کارول کیدی شي. دا د تصدیق او یا د selfies لپاره فلټر غوښتنلیک سره یو بل ټوټه لست اپلیکیشن نه ده - دلته تمرکز د میکروسکوپ د چشمې څخه د ویډیو لګښت، عصري شبکې، د هارډویر تبادلې، Bluetooth کنټرول شوي سلیډ حرکت، او ټول دا په مستقیم ډول په آیفون کې چلول کیږي. په داسې حال کې، زه هڅه کړې چې په غیرقانوني تخنیکي تفصيلونو کې وده ورکړم، نو مقاله د پراخه پېرودونکو لپاره شتون لري. A Few Words About the Product حتی د عصري هیماتولوژیکي تحلیلرونو سره، د نمونې 15٪ ته هم اړتيا لري چې په میکروسکوپ کې په لټه کې وکارول شي - په ځانګړي ډول کله چې په خون کې انفراديونه شتون لري. اتومات میکروسکوپ سیسټمونه شتون لري، مګر دوی د الوتکې د ګاڼو په لټه کې لګښت لري، ځکه چې ډیری لابراتوارو په لټه کې د خونې ټوکرونو په لټه کې وکاروي. موږ دا په مختلف ډول کار کوي: زموږ حل د معياري لابراتوار میکروسکوپ په ډیجیټل سکنر سره د اتومات سلیډ د تغذیه او انځور کیدو - ساده، ارزانه او اغیزمن. موږ په ګډه وده کوو او د ټیم په . د انټرنیټ د سیلیکون د سیټ سره د معياري لابراتوار مائیکروسکوپ سره اړیکه ونیسئ، دا په ډیجیټل سکنر کې بدل کیږي. دا د هارډویر برخو شامل دي: iPhone - د سیستم کنترول، د سلول تحلیل لنز اډاپټر - د سمارټ فون سره د مائیکروسکوپ د نښلیدو سره تړل کړئ د روبوټ مرحله - د سلاټ حرکت، تمرکز کنټرول، او د نمونې تر منځ بدلون وړاندیز کوي په سافټ سایټ کې، د سیستم شامل دي: په iPhone کې د ګرځنده غوښتنلیک په舞台 کې د کنټرولر د ویب پلټنې / Cloud د ګرځنده غوښتنلیک د لاندې کارونو ترسره کوي: د کامرې څخه د انځور په جریان کې پروسس کوي، د سلولونه تشخیصوي، راټولوي او شمولوي دوی ته د ویب سرور سره د نورو تجزیه artefacts ته ورسیږي د روبوټ مرحله حرکت کنټرول کوي، سره د مخکښ algorithm سره سم کارول او همدارنګه د تنظیم او تحلیل پیل، د کامرې پارامترونو تنظیم، د مختصر تحلیل راپور وګورئ، او نورو اړونده کارونو لپاره مسؤلیت لري. د ویب پلټنې لپاره د پایلو وګورئ، د تحلیل د ډاکټر تصدیق، او راپور صادر کړي. لاندې ده ښيي چې دا ټول په ګډه کار کوي: ویډیو A Bit of Context About Hematological Diagnostics د لومړني تحلیل چې موږ ترسره کوو د خون نښی په میکروسکوپ دی. دا د بشپړ خون حساب (CBC) برخه ده، د ټولو عام او بنسټیز طبیي ازموینه یو. ډیری خلک دا ترسره شوي دي او په خپل پایلو کې ورته جدولونه وګورئ. ( ) د : سرچینه کله چې د CBC ترسره کیږي، د خون نمونهونه د هیماتولوژیک تحلیلر له لارې پروسس کیږي. که د وسایلو د معياري څخه عوارض ښیي، د نمونې د مایکروسکوپی څیړنې ترسره کیږي. د دې پروسه په څیر وي: د لابراتوار تخنیکر د خون د ګازو پر ځي، د Romanowsky روش (یا ورته بدلونونه)1 په کارولو سره، د دې تصدیق کوي، او د مایکروسکوپ لاندې چمتو شوي چڼاسکه وګورئ. دا په دې مرحله کې دی چې یو کولی شي: غیر معمولي سیلیکون مورفولوژیکونه (چې غیر بالغ نیتروفیلونه، غیر معمولي لیمپوسټونه، انفال سیلونه)، د پیاوړتیا، اندازه، granularity، inclusions، او نورو پارامترونو د اندازې، او ځینې وختونه حتی د PCR2 یا ELISA3 ډاټا ترلاسه کولو مخکې مخکښ تشخیص کړي. But manual analysis is painful: دا په عمده توګه مسلکي دی، د تخنیکر تجربه پورې اړه لري، انسان د کثافاتو او غلطاتو ته حساس دی، او دا په ښه توګه د کچه نه کوي. اتوماتیک مایکروسکوپی سیسټمونه ښه دي، مګر دوی ارزانه دي (د 60،000 ډالرو څخه زیات) او له دې امله د لابراتوارونو څخه زيات 90٪ اوس هم د لارښوونې طریقې پر بنسټ دي! موږ ځان ته هدف جوړ کړي چې د ارزانه میکروسکوپ اتوماتیک کیټ (د څو سینې هزار روبل) چې کولی شي په پراخه کچه په لابراتوارونو کې وده ورکړي. او دا دا دی چې د آیفون په سټیشن کې راځي. [1] - د سپیډ کې د خون د نمونې سره د ډیمیتری لاینډیوډویچ رومانوفسکی (1861-1921) د ځانګړي ټوکر سره درملنه کیږي. دا ټوکر د خونې سیلونو مختلف اجزاءونه د میکروسکوپ لاندې ښکاره کوي، ځکه چې دوی په مختلفو رنګونو کې ټوکر شوي دي [2] - PCR (Polymerase Chain Reaction) اجازه ورکوي چې حتی د ډیری کوچني مقدارونو د جنسي موادو، لکه ویروسونه یا باکتریو، چې د عفونتي ناروغۍ د تشخیص لپاره مهم دي، کشف کړي. موږ دا له COVID عمر څخه ښه یاد لري. [3] - ELISA (Enzyme-Linked Immunosorbent Assay) کارول کیږي کله چې دا مهم دی چې د ځانګړي پروټینونو شتون کشف کړي What the iPhone Is Capable Of کله چې موږ د "AI په سمارټ فون کې" په اړه خبرې کوو، ډیری خلک د کامرې فلټر، متن اتومات یا چیټ بوټونو په څیر شیان تصور کوي. مګر د عصري ماډلونو سره مسلکي کوچني کمپیوټرونه دي چې کولی شي د ستونزو کارونو ترسره کړي - زموږ په صورت کې، په واقعي وخت کې د خونې سیلونو تحلیل. د دې امکان کولو لپاره درې اصلي برخو وګورئ: Graphics Processing Unit (GPU). د انځور عملیاتو لپاره کارول کیږي: د مخکښ پروسس، فلټر، اصلاح. د مثال په توګه: د نښلیدنې، رنګ اصلاح، د آرټیپټ حذف، او نورو ځانګړي کارونو په اړه د ګرافیک او انځور تحلیل. Neural Processing Unit (NPU / Neural Engine). Apple د Neural Engine په خپل وسایلو کې د A11 چپس (iPhone 8 / X) څخه پیل کیږي، او د A12 (iPhone XR او بل) څخه، دا د NPU (TOPS) په ثانیو کې د 5 تریلیون عملیاتونو څخه زیات ترسره کولو لپاره امکان دی. په نامه کولو وخت کې، د وروستیو A17 پرو او A18 / A18 پرو چپس د 35 TOPS وړتیا لري. دا د سیل تشخیص او طبقه کولو لپاره د ماډلونو پایلې لپاره کارول کیږي، د نمونې پیژندنه، او د ورته کارونو لپاره، د CPU / GPU آزادولو لپاره. Central Processing Unit (CPU). د عمومي منطق، کنترول، ترتیب پروسس، serialization / deserialization، د APIs او د فایل سیستم سره کار کوي - په عمده توګه هر څه چې د مخکښ دوو برخو لاندې نه دي. موږ به د دې په کارولو سره د iPhone XR (A12 Bionic، 2018) په توګه د یو ډول بڼه په توګه بحث کوو، که څه هم دا په دې موډل کې، موږ کولای شو: د میکروسکوپ کیمرې څخه د 50fps ویډیو جریان پروسس، په ورته وخت کې د CoreML inference (~ 15ms per frame) ترسره کړي، په ورته وخت کې د ډاټا په ډیسک کې ذخیره کړئ او د سایټ سره سمون کړئ، د حرارت درجه په معقول حدونو کې ساتل کیږي (که د چټکولو او د کار prioritization په احتیاط سره ترتیب شوي دي). د مثال په توګه، د مالریا سټراټونو تحلیل کولو په وخت کې، کله چې په یوه واحد فریم کې د 100 څخه زيات سلولونو پروسس اړتیا لري، د تودوخې د تودوخې په وخت کې د دویم یا درېې سټراټ پیل کیږي - د CPU فریکونسۍ به کم شي، او د انټرنېټ تبادلې او تودوخې به ونیسئ. برسېره پر دې، د اډاپټر سره د انټرنیټ پینل سره د تودوخې د تودوخې مخنیوی لاندې پردې نندارې د مختلفو تجزیه کوي، نه مالریا - مګر دلته مهم دی چې په هر فریم کې څومره تشخیصونه شتون لري. په عمومي توګه، په iOS کې، دا امکان دی چې د سیسټم د حرارتي حالت د څارنې له لارې . په زموږ د تولید چاپیریال کې، موږ هیڅکله د Critical کچه نه ترلاسه کړ، مګر د Serious کچه په ډیری وختونو کې په ډیر لوړ بار کې ترسره کیږي. د فعالیت اندازه کولو لپاره، موږ د Xcode پروفایلر کاروئ، کوم چې تاسو ته اجازه ورکوي چې د CPU، GPU، او د حافظه کچه، او همدارنګه د حرارتي حالت اندازه کړئ: ProcessInfo.processInfo.thermalState په اړه او دلته د thermalState ارزښتونو جدول سره د دستاويې له شرحونه دي: Thermal State Recommendations System Actions Nominal No corrective action required. — Fair Temperature is slightly elevated. Applications may proactively begin power-saving measures. Photo analysis is paused. Serious System performance is reduced. Applications should decrease usage of the CPU, GPU, and I/O operations. ARKit and FaceTime lower the frame rate (FPS). iCloud backup restoration is paused. Critical Applications should reduce CPU, GPU, and I/O usage and stop using peripheral devices (e.g., the camera). ARKit and FaceTime significantly lower the frame rate (FPS). د نامتو د اصلاحاتو اړتیا نلري. — د حق د حرارت درجه په کم ډول لوړ شي. غوښتنلیکونه کولی شي د بریښنا د ساتنې اقدامات په فعال ډول پیل کړي. د انځور تحلیل بند شوی. په عمومي د سیستم فعالیت کم شوی. غوښتنلیکونه باید د CPU، GPU، او I / O عملیاتونو کارولو کم کړي. ARKit او FaceTime د فریم کچه (FPS) کم کړي. د iCloud خوندي کڅوړې د تبادلې. د انتقامي غوښتنلیکونه باید د CPU، GPU، او I / O کارولو کم کړي او د خارجي وسایلو (د مثال په توګه، د کیمرې) کارولو بند کړي. ARKit او FaceTime په عمده توګه د فریم کچه (FPS) کم کړي. د بشپړ حرارتي او د بریښنا تحلیل د انفرادي مقاله په لټه کې دي - لکه څنګه چې زه په پیل کې اشاره کړې، زه غواړم دلته ډیر عمده نه وي. په عمده توګه ممکن فرض شي چې د د حالت په سطحه کې د 80–90 °C او په سطحه کې د ~40 °C سره مطابقت لري. په عمومي توګه موجود سرچینو Serious د iPhone د هر ډول کار کوي د نورو وسایلو لپاره ، یو منفرد جریان لري ، کوم چې د وسایلو باید د (Made for iPhone) تصدیق، د iAP2 (Apple Accessory Protocol) له لارې کار کوي، او داسې نور. په خلاصه توګه - دا زموږ په حال کې نه ده. د Bluetooth کم انرژۍ د MFI دا په دې کې د پروتوکول د بنسټیزو رولونو او جوړښتونو یادونه مفید دی: په عمومي ډول، د محلي ډاټا رسوي یا د اړیکو انتظار کوي (د مثالونو: یو ساعت، د حرارتمتر، د قلبی سرعت نظارې). مرکز - یو وسایلو چې د خارجي سره اړیکه کوي. دا د اړیکه پیل کوي، امرونه ورکوي، او ډاټا ترلاسه کوي. GATT (Generic Attribute Profile) - د جوړښت چې د BLE وسایلو له لارې د معلوماتو تبادله کوي. GATT تعریف کوي چې کوم "پړاوونه" شتون لري، کوم چې کولی شي لوستل شي، لیکل شي، او یا د خبرتیاو لپاره لیږدول شي. خدمتونه او ځانګړتیاوې - د BLE اړیکه کې د معلوماتو په خدمتونو (لوژیکي ګروپونو) او ځانګړتیاوو (د ځانګړي پارامترونو) کې جوړ شوی دی. د مثال په توګه، د فټنس ټیکر ممکن د Heart Rate خدمت لري، کوم چې د Heart Rate Measurement ځانګړتیاوې (د اوسني heart rate) شامل دي. زموږ په صورت کې، د آیفون د BLE ماډل له لارې د مرحله کنټرول کوي، کوم چې د GATT خدمت سره د ګمرکونو په توګه تشخیص کیږي او د دوو کارونو ترسره کوي: د XY لګښتونو لپاره د کنټرولر ته حرکت کښته او د Z لګښت په اوږدو کې تمرکز کنټرول د کنټرولر څخه معلوماتو ترلاسه کول (status، موقعیت) د حرارتي بار په اړه خبرې کول، د BLE کنکشن باید په پام کې ندي. د سیلیکون لابراتوارونو د معلوماتو له مخې په خپل ، په 20 Hz فریکونسۍ کې (د 50 ms interval) کښته ورکوي او یا حالت ترلاسه کړئ: د BLE د بریښنا د مصرف په اړه سند د آیفون XR عادي بیلابیلو د بریښنا د مصرف په اړه 50-100 mW. د 1 mW څخه کم زیاتوالی تقریبا بیلابیلو ده، په ځانګړي ډول د عصري شبکې پروسس، GPU کارولو، او ډیزاین په پرتله. د رایو چینل یوازې د 2٪ وخت کې فعال دی، د نورو وختونو کې خواب. موږ به د BLE ماډل او کنټرول سره د اپلیکیشن د کار د تفصيلاتو په برخه کې "د Motorized Stage په کارولو سره" په عمده توګه راځي. اوس، د کیمرې په اړه ځینې کلمه. موږ د لومړني (د پراخه زاويه) مخکښ کیمرې کاروي: موږ د 1280×720 د حل کولو سره د H.264 ویډیو او د 40 Mbps په اړه بټریټ راټول کوو. د بیټریټ لوړ شي، د وخت واحد په اړه نور معلومات → د انځور کیفیت لوړوي. 40 Mbps د 1280×720 (HD) حل لپاره ډیر لوړ دی. دا د سلول تحلیل انځور کولو لپاره ډیر کافی دی. H.264 یو نړیوال ویډیو کوډ کولو معیار دی، چې د AVC - Advanced Video Coding یا MPEG-4 برخه په نوم هم دی. دا د ډاډډډینټ ډاټا (د انټرفریم او انټرفریم compression) د مخنیوی کچه او په پایله کې د فایل اندازه کموي. (د مثال په توګه، موږ هم د ویډیو ریکارډ کولو لپاره د کلنۍ تحلیل لپاره د ډبګګګ او تایید لپاره کار لري.) په دې توګه، هغه څه چې موږ په پای کې نه یوازې د ګرځنده UI کلینټ نه دي، بلکه د بشپړ کچه د ختیځ وسایلو - په دې معنی چې یو وسایلو چې د معلوماتو په کورني توګه پروسس کوي، د سرور سره په دائم ډول اړیکه نه کوي. د موبايل غوښتنلیک اوس چې موږ د هارډویر برخه پوښلي، موږ به وګورئ چې دا ټول په غوښتنلیک کچه څنګه کار کوي. موږ به د کار د تعریف له لارې پیل کوو: په انټرنېټ کې، د غوښتنلیک د کیمرې څخه د فریمونو جریان ترلاسه کوي - د میکروسکوپ نندارتون چې د نندارتون په اوږدو کې حرکت کوي. At the , the application must: output detect leukocytes (and other cells depending on the analysis) display detected objects with bounding boxes (BBoxes) perform cell counting send data in the background to the backend (images of cells, the scan, individual frames) لکه څنګه چې په دې ډیزاین کې ښودل کیږي، هر څه د کیمرې فریم په څیر چټک کیږي - د تشخیص، په ډیزاین کې نندارتون، او د هغه محصوالت چې اړتیا لري چې د سایټ ته لیږل شي د دې پورې اړه لري. له دې امله، د هر څه په کور کې د فریم د جریان پروسس دی. بیا د دې اصلي مرحلو او کلیدي نقطې بیان کړئ. . دا شامل دی د غلطتۍ اصلاح، د آرټفیکټ حذف، د نښلیدو کچه د اندازې، او د رڼا او رنګ اصلاح. 1) Preprocess the frames د مثال په توګه، هر لابراتوار یا میکروسکوپ د ځانګړي رڼا شرایط لري، کوم چې د عصري شبکې ته غلطی کولی شي. دلته، دا اړتیا لري چې د سپین بیلابیلو عادی کولو ترسره کړي - له دې امله چې د نندارتون د ځمکې په یو خالی سيمه ته لارښوونې او د کیمرې د سپین بیلابیلو تنظیم کولو پیل کړي. موږ هم یو بڼه لري چې د سلولونه د رنګ kalibrating له لارې د پورټل ته لیږل شوي دي. دا ځکه چې د تشخیص د کامرې ترتیبات په کارولو مخکې په دوامداره توګه پیل شو. او د دوپلیټونه پرته د سلولونو 2) Detect, classify, count د مثال په توګه، په لاندې انځور کې، ځینې دوپلیکیټونه په لویو تحلیلونو کې د رنګ په لټه کې دي: له دې امله چې دا په حق ډول په مختلفو سایټونو کې حرکت کوي، له یو سایټ څخه له بل ته انتقال کوي، او مهم تر ټولو، په دقیق ډول په سایټ کې تمرکز کوي، څومره څومره چې دا د سایټ محدودیتونو څخه بهر یا په خالی سيمو کې ځي. 3) Control the microscope د سیلونو د بیلابیلو ته د سایټ ته (د snapshots، metadata) پرته له خوا د راتلونکي تحلیل پروسس مخنیوی. 4) Upload د دې پروسه n ځله، لکه څنګه چې تحلیلونه په ټوټه کې ترسره کیږي. 5) Repeat او د دې ټولو لپاره د تلیفون پرته د ګرم کولو له لارې ترسره کړئ. 6) The application evolved in the typical startup fashion: a proof-of-concept was quickly thrown together, then refined into an MVP (Minimum Viable Product) suitable for piloting in labs and pitching to investors. As a result, the app’s architecture ended up being hybrid: some screens are implemented using UIKit-based MVP (Model-View-Presenter) screens, while new features and interfaces are written in Swift with MVVM (Model-View-ViewModel). موږ د سوداګرۍ منطق تخصیصولو لپاره د خدمت کچه کاروي: د د ټول بستېونه د جوړونکو یا د DI کانټینر له لارې انجکشن شوي دي. د واقعیت سپارښتنې سره د reactivity او asynchronous چڼاسکه په اړه، موږ یو "د پرمختللي پړاو" لرو: موږ لومړی د RxSwift تصویب کړ، بیا د Combine ته انتقال پیل کړ، او د async / wait له لارې، د چڼاسکه برخې له دې ځای کې حرکت کړ. د پایله یو ډول "Frankenstein" دی، مګر موږ د دې برخو څخه وروسته په انفرادی ماډلونو کې وده ورکړئ نو په راتلونکي کې، موږ کولی شو په ساده توګه د نوي تکنالوژۍ کڅوړه لپاره یو برخې بدلون ورکړئ. ټول غوښتنلیک د تفصیلي ریکارډ سره تړل کیږي، او د پیچلي CameraService BluetoothController AnalysisService د آزموینې په اړه د کلک مقاله کولی شي: د تحلیل د انفرادي برخو څخه د سپارلو څخه او په چټکۍ سره د خواړه حالتونو له لارې (د بل، زه یو په دې موضوع کې) ، د تحلیل په انفرادي مرحلو کې د نمونې لپاره او د انټرنېټ او واحد ازموینې سره د دې ټولو پوښښ. ProcessInfo کوچني تخنیکي نوټ مګر بیا د فریم پروسس ته رجوع وکړئ او د دې څخه ډیر تفصيلي معمولي ډرایو وګورئ: تحلیل کنټرولر - د تصمیم کولو مرکز: د فریمونه ترلاسه کوي او د فریم پایپین کې پروسس پیل کوي. د کامرې خدمتونه - د کامرې څخه د خام فریم جریان ترلاسه کوي، دا بدلوي، او دا ته ورسیږي. د میکروسکوپ کنټرولر - د میکروسکوپ کنټرولر کنټرولر. — a chain consisting of several stages: Frame Pipeline — correction, filtering Preprocessing — object/cell detection Detection — counting unique objects Counting — final filtering and preparation for visualization Postprocessing UI - د کاروونکي ته په واقعي وخت کې پایلې ښودلوي (د محدودیتونه، اټکلونه، انتقالات). Uploader - د تحلیل artefacts (snapshots، سلولونه، config) سره backend synchronizes. د addiction manager په اړه: موږ په پیل کې د CocoaPods کارول (که په 2024 کال کې)، خو وروسته SPM (Swift Package Manager) رامینځته کړي. ځینې خدمتونه (Computer Vision، Bluetooth، ګټورۍ) په SPM ماډلونو کې منتقل شوي دي. دا هم هڅه شوي چې ObjC / C++ کوډ په انفرادي xcframeworks کې رامینځته کړي، مګر د دې لپاره چې د دې ټولې ډولونو ته اړتیا نلري، نو موږ دا کوډ په اصلي پروژې کې رامینځته کړ. ObjC به د C ++ په څیر د پوښلو لپاره اړتیا نلري ترڅو دا د Swift څخه رامینځته شي. دا د ObjC ++ ټولګيونو په پایله کې رامینځته شوه: دوی د انټرنیټونو په خالص ډول ObjC دي، چې د Swift سره د انټرنېټ کولو . د ساتنې حالت او فعال پرمختګ بند شوی Swift د C++ مستقیم تماسونو ملاتړ کوي زه باید ذکر وکړم چې زه په C ++ او کمپیوټر ویز انګرامونو کې یو ګورو نه ده، مګر زما مسئولیتونه شامل دي چې د Python څخه د انګرامونو او یوریستیکونو د بنسټیز درک او porting ترلاسه کړي، کوم چې زموږ د R & D تر ټولو ترسره شوي دي. زه لاندې ځینې بیان کولی شي. دنده د نښلیدو حذف د اډاپټرونو څخه یو په انځور کې د نوري مخنیوی آرټیفیکټ ښودلی. په پایله کې، د سیل چې باید په حلقه کې ښودل شي به اوږده یا مخنیوی وي، په ځانګړي ډول د فریم په زاويه کې. موږ د شطرنج بورډ سره د kalibrating کارول او د فورمې جغرافیه راټولولو لپاره: د OpenCV CV::undistort () We calibrate the camera — capturing images of a chessboard/grid with known geometry. OpenCV computes: the camera matrix K (projection parameters) distortion coefficients D = [k1, k2, p1, p2, k3, …] We apply cv::undistort() or cv::initUndistortRectifyMap() + remap(): this computes where each point “should have landed” in reality the image is “straightened” back to correct geometry وروسته، د اډاپټر بدل شوي دي - دا مرحله راټول شوی. Determining Position on the Slide په slide کې د موقعیت د ټاکلو د سلولونو دقیق اندازه کولو لپاره، دا مهمه ده چې د دوی کوډیټونه په مناسب ډول پوه شي. here, you can see what happens when the shift determination is incorrect. ویډیو لومړی، موږ هڅه وکړه چې د دوو فریمونو تر منځ د نسبت بدلون محاسبه او د بشپړ بدلون جمع کړي. موږ څو لارو ازمايښت: د فټ فوریر بدلون پر بنسټ د فزايي اړیکو له لارې د انځور ریکارډ کولو کلاسیک طریقې. موږ په OpenCV کې د دې پیژندل او حتی Apple Accelerate کارول. د محلي کلیدي ټکي پر بنسټ طریقې د بیانونکي سره: SURF، SIFT، ORB، او نور. د Optical Flow د اپل ویشن کې د انډول VNTranslationalImageRegistrationRequest په يو بل کې، موږ ځینې فرضونه لري: no scaling or rotations were present په نوري ډول: د پاکو، د نښلیدو نښلیدو، پرته د خالی برخو په هرصورت، د رڼا بدلون، تمرکز، کچه غلطی، ناڅاپي بدلونونه، رڼا یا د انځور په لوستونو له امله څه هم ستونزه شتون لري. دا د لاندې څنګه د پرتله جدول په پایله کې راځي: دلته ستاسو د وړاندې شوي جدول او متن دقیق ترجمه دی: Method Advantages Disadvantages Usage Notes Speed Comment FFT + cross-correlation (OpenCV, Accelerate) Very fast, global shift detection, simple to implement Accumulates error, not robust to abrupt shifts Requires images of identical size, suitable for “pure” shifts Very high Used as the primary method SIFT High accuracy, scale/rotation invariant Slow, used to be non-free Excellent for diverse scenes with texture and complex transformations Slow Experimental option SURF Faster than SIFT, also scale/rotation invariant Proprietary, not always available Slightly better suited for real-time but still “heavy” Medium Experimental option, especially since under patent ORB Fast, free, rotation invariant Sensitive to lighting, not robust to scale changes Works fairly well for image stitching High Before we moved stitching to the cloud, we had versions using this Optical Flow (Lucas-Kanade) Tracks movement of points between frames, good for video Doesn’t handle global transformations, sensitive to lighting Best in videos or sequences with minimal movement Medium We experimented with this for digitization (stitching) of images Optical Flow (Farneback) Dense motion map, applicable to the whole image Slow, sensitive to noise Good for analyzing local motions within a frame Slow We experimented with this for digitization (stitching) of images Apple Vision (VNTranslationalImageRegistrationRequest) Very convenient API, fast, hardware-optimized In our case, accuracy was poor Perfect for simple use cases on iOS/macOS Very high We tried it and abandoned it FFT + cross-correlation (OpenCV, Accelerate) ډير چټک، د نړۍ د بدلون د تشخیص، اسانه نصب د بریښنا ډکولو، نه د ناڅاپي بدلونونو ته قوي اړتيا لري د ورته اندازه انځورونه، د "د پاکو" بدلونونو لپاره مناسب ډیر لوړ لکه څنګه چې د لومړني لاره کارول SIFT د عالي دقت، کچه / rotation invariant په چټکۍ سره، نه په وړیا توګه د مختلفو سټیشنونو لپاره د textures او پیچلي بدلونونو لپاره ښه چټک تجربي انتخاب SURF چټک تر SIFT، هم د کچه / rotation invariant د مالکیت، نه په هر وخت کې موجود په واقعي وخت کې یو څه ښه مناسب دی، مګر په هرصورت "پړاو" Medium د تجربې انتخاب، په ځانګړي ډول ځکه چې د patent له مخې ORB چټک، وړیا، rotation invariant د رڼا حساس، نه د کثافاتو بدلونونو ته قوي د انځور سټیچ کولو لپاره ډیر ښه کار کوي د لوړ مخکې چې موږ د سایټ ته سټیشن ته لاړ شو، موږ د دې کارولو سره نسخه لري Optical Flow (Lucas-Kanade) د ګمرکونو تر منځ د ټکي حرکت، د ویډیو لپاره ښه په نړۍ کې د بدلونونو سره کار نه کوي، د رڼا حساس په ویډیو کې یا د لږ تر لږه حرکتونو کې غوره د Medium موږ د انځورونو ډیجیټل کولو لپاره د دې تجربو سره تجربه کوو Optical Flow (Farneback) د ټیټ حرکت نقشه، د ټولو انځورونو لپاره کارول کیږي په چټکۍ سره، حساس غږونه Good for analyzing local motions within a frame چټک موږ د انځورونو ډیجیټل کولو لپاره د دې تجربو سره تجربه کوو Apple Vision (VNTranslationalImageRegistrationRequest) ډیر مناسب API، چټک، د هارډویر لپاره optimized په اسانۍ کې، د دقت کم بود په iOS / macOS کې ساده کارونه لپاره مناسب ډیر لوړ موږ دا هڅه کړ او دا راځي د هر اختیاري لپاره، موږ هڅه کوو چې د دقت او فعالیت په اړه د پرتله په پرتله کې د استثنا بدلون په اړه د غوره ترتیب ونیسئ: موږ د انځور حلونه، algorithm پارامترونه، او د مختلفو کیمرې او میکروسکوپ اتومات تنظیمونه مختلف کړي. په لاندې کې د دې ډول تجربو څخه ځینې ګرافونه شتون لري. او دلته دا دی چې د ډبګنگ پروسه د کلیدي پوښونو د تشخیص لپاره څنګه وي، چې موږ وروسته به د بدلون محاسبه کولو لپاره کاروئ. په پایله کې، کله چې د روبوټ مرحله زموږ په سیسټم کې داخل شو، موږ د کنټرولر څخه د کنټرولرونو کارولو پیل کړ، کوم چې موږ وروسته د CV یوریستیک په کارولو سره پاک کړي. د سلګونو حساب په عمده توګه، د سلګونو شمیره کار د Object Tracking & Deduplication ځانګړي حالت دی: "د سلګونو د معلوماتو لپاره، دا د دوو شمیره څخه مخنیوی، د ډیری شمیره څخه مخنیوی، او د اړین سلګونو په لټه کې نلري - ټول په ثانیو برخو کې، په واقعي وخت کې د کیمرې له لارې او د تلیفون د هارډویر په کارولو کې." دلته څنګه موږ دا حل کړ: Object Detection. موږ د نوري شبکې کاروي ترڅو په فریم کې Objects (Bounding Box، BB) کشف کړي. هر BB د خپل اعتماد کچه (د شبکې اعتماد) او د سلول ټولګه لري. د پیژندنې لګښت او غلط مثبتونو سره مخنیوی کولو لپاره، موږ د چټک فلټر کولو کاروي: د رنګ په اساس: د انټرنټ یا رنګ لړ په توګه. د مثال په توګه، دلته په ختیځ کې، د رنګ رڼا د رنګ رڼا نښه کوي - مګر د عصري شبکې لومړی دا د رنګ رڼا په توګه راټول شوی. په هرصورت، رنګ فلټر وروسته په لوبه کې راځي، او دا د فلټرونو څخه راځي. د رنګ عايق د erythrocytes له خوا د فلټرونو له خوا اخلي. geometric: we discard objects whose sizes fall outside typical cell dimensions. we also discard cells that partially extend beyond the frame edges — those are of no interest to us Counting unique objects. Some BBs may be counted more than once for the same cell, so it’s important to detect such cases and count them only once. At one point, we were inspired by a guide from MTurk that describes two options: Option 1: Compare the distances between BB centers — if a new BB is too close to one already recorded, it’s likely “the same” cell. Option 2: Calculate IoU (intersection over union, Jaccard Index) — the metric for overlap between rectangles. If a new BB overlaps significantly with an existing one, we count it only once. په عمومي توګه، دا اړتیا لري چې په فریمونو تر منځ د اجزاو څارنه وکړي، په ځانګړي توګه که موږ د سټینټ څخه مخکې سټینټ شوي سيمو ته راځي. دلته هم، دا مهمه ده چې په دقیق ډول د سلاډ کې موقعیت مشخص کړي - په بل ډول، ټول شمیره د رخصتۍ څخه راځي. د ډیجیټل د کارونو څخه یو دی چې د اسکن ډیزاین کول، په اصل کې د سافټویر پر بنسټ د اسټولوژیک سکنر لپاره جوړ کړي. د لاندې انځور ښيي چې دا څنګه ښکاري: پټونه د اسکن جوړولو لپاره کارول شوي حرکت راځي، په کوم کې موږ فریمونه راټول او دوی په یو لوی انځور کې راټول کړو. د نندارتون په اوږدو کې د نندارتون د حرکت دلته هم، د دقیق پوزیشن مشخصولو مهمه مهمه وه، په پایله کې د چټک سټیشن. دا ارزانه ده چې په پیل کې موږ د موټور شوي پړاو نه لري او د لارښوونې پر بنسټ. تصور وکړئ چې د سینې برخو څخه د موسايک جوړ کړي. که تاسو د کنډایټونو له لاسه ورکړئ، د موسايک په پایله کې غلطه رامینځته کیږي. دلته دا دی چې د لومړي تجربو څنګه ښکاري: د نندارتونونه، نندارتونونه، د رڼا په فرقونو، خالی فضاونه. په چپ کې - د نږدې رڼا او نښلیدو سره د نقشه، په کوم کې د "د نښلیدو" په چوکاټونو کې شتون لري. په چپ کې - د نږدې نږدې نښلیدو د نښلیدو سره نږدې. یا، د مثال په توګه، یو کاروونکي د نښلیدو سکنوي، په چټکۍ سره په دې کې حرکت کوي - ځينې سيمو په پای کې نښلیدل کیږي (Motion Blur). موږ هڅه وکړه چې د دغو فریمونو څخه ډک کړئ که دوی د غیرقانوني نښلیدو پړاو پوره نه کوي یا که د انتقال د دوی لپاره محاسبه نه شي. د ناڅاپي حرکت په وخت کې په سکن کې پوښل شوي نښلیدو په دوامداره توګه، موږ ته د لاندې لارښوونې ته راشي: ډیری تکرارونه شتون لري: په وسایلو کې، په مختلفو طریقو کې، په مختلفو فورمونه او کیمرې سیسټمونو کې. موږ په پایله کې د حل ته رسیدو چې سایټ په سایټ کې جوړ شوی دی، او د ګرځنده وسایلو د kalibrated white balance او exposure سره فریمونه وړاندې کوي. لاندې یو مثال دی چې څنګه موږ د انفرادي frame-processing برخو د پروسس سرعت په اړه د ترتیب په اړه اندازه کړ: د کیمرې ترتیبات، انتخاب شوي algorithms، او د دوی پارامترونو. (د روسیې سره دلته ځینې مخلوط شوي دي، مګر زه امیدوارم چې ټولې مفکوره واضح دی) د motorized مرحله سره کار کول اوس - د آیفون او د موټور سټیشن تر منځ د اړیکو په اړه د معلوماتو: څنګه موږ د BLE له لارې اړیکه ونیسئ، موږ څه کښته کوو، او څنګه موږ د اتومات فیکس تنظیم کوو. د ګرځنده وسایلو له لارې د بلیوټو له لارې د کنټرولر سره د سټیشن کې د کنټرولر سره اړیکه ونیسئ او د XYZ کنټرولونو په اوږدو کې حرکت کوي. نور دقیق تر، دا سټیشن ځان دی چې حرکت کوي، مګر د ګرځنده وسایلو له لارې د نښی په لټه کې لیدل شوي انځور څخه، دا ښکاري چې د حرکت په ټوله کې ترسره کیږي. زموږ سټیشن هم د ګمرک جوړ شوی دی - نه ځکه چې موږ "په خپل ځان کې هر څه رامینځته کوو" بلکه ځکه چې سوداګریزو حلونه د 10،000 ډالرو څخه پیل کیږي، او دا یو څه نندارې نه ده. موږ د ډیزاین بورډ ته کار واخلئ او زموږ د خپل نسخه د ~ 800 ډالرو لپاره جوړ کړ. دا ډیر ارزانه و، ځکه چې یو انجنیر په وخت کې پاملرنه وکړه چې د موټور شوي میکروسکوپ سټیشن د 3D چاپګر په شتون کې شتون لري. ورته XYZ kinematics، ورته stepper موټورونه، ورته ریلونه. په پایله کې، موږ د ډیری تولید شوي او ارزانه برخو کاروئ، مګر زموږ د ځانګړي اړتیاوو لپاره ډیزاین شوي. په جوړولو کې، د د متحرک میکروسکوپ مرحله اجزاء د لارښوونې مرحله حرکت لپاره، موږ د مجازی Joystick کاروي (د کاروونکي ته د حرکت ټوټې په پرده کې ښیښه کوي) - دا د kalibrating او سیسټم نصب سټینرونو کې کارول کیږي. که څه هم، په تحلیل کې، کنټرول تل اتومات شوی. دلته دا څنګه چې د Joystick په لومړي نسخهونو کې کارول کیږي - وروسته، موږ دا د غږ او چمتو کولو سره وده ورکړي. Communication Protocol د تماس پروتوکول لکه څنګه چې د Bluetooth انټرنېټ، موږ د د BLE ماډل په معياري توګه په متن پایپند حالت کې کار کوي، په دې معنی کې د غوښتنو او ځوابونو په سمه توګه ته ورسیږي. د ترتیب او سیسټم کارونو لپاره (د نوم بدلون، د اړیکو سرعت) د AT امرونه کارول کیږي. د HC-08 د کنټرولر ځان د GRBL پر بنسټ فریمورډ چلوي، د کارولو سره Commands. د اصلي scenarios دلته دي: د G کوډ د اړیکو ابتدایی کول (د تلیفون باید پوه شي چې د مرحله تړل کیږي) د سلاډ سکن کول (د سټیشن په اوږدو کې د ټولو لګښتونو په اوږدو کې حرکت) د سکرین د بندولو / تکرار کولو د غیر معمولي حالتونو په کارولو سره: د محدودیت سوئچ ته ورسیږي، د حرکتونو قطع کول، د امر پافل او فراغت. د بریښنا د کارولو په اړه یو انفرادي سند دی. د GRBL د خپل کښته ټولګه لري چې د د نمونې، د مثال په توګه: $ $H - homing یا kalibrating او له لارې د محدود سوکونو له لارې د هارډویر د لګولو. عموما په لومړنۍ پیل کې ترسره شي او وروسته که اړتيا وي که د حرکت په وخت کې مهم کلک خطا ښودل کیږي. — Jogging mode, which simulates joystick control. The command itself should describe relative movement along all axes. An example of such a command: $J=<command> $J=G21G91Y1F10 — units in millimeters G21 — relative positioning G91 — movement along the Y-axis by 1 millimeter Y1 — movement speed. F10 ? — د GRBL حالت پوښتنه. د ماشین د کلیدي پارامترونو سره یو لړ ته ورسیږي. د مثال ځواب: <Alarm̧MPos:0.000,0.000,0.000FS:0,0Pn:XYZWCO:-5.300,0.000,-2.062> موږ په لومړي دوو پارامترونو کې دلچسپي لري: دا کولی شي "Idle" یا "Running" یا "Alarm" وي. MPos - د مرحله د اوسني موقعیت. زه به د GRBL او د پړاو د کنترول پروتوکولونو په اړه ډیر عمده نه وي - دا د انفرادي مقاله لپاره مواد دی. په خلاصه توګه: د GRBL د CNC نړۍ څخه د بازو سرچينې فریمور دی، د سه اکس سیسټمونو (XY + Z) له لارې ساده G-کډ فرمانونو له لارې کنترول لپاره په بشپړه توګه مناسب دی. موږ د ساده ترټولو ساده BLE ماډل - د HC-08 - انتخاب کړ چې د MFi او iAP سره د کارولو څخه مخنیوی وي. موږ لپاره مهمه وه چې د آیفون د امرونو د اعتماد سره مخنیوی کړي او د حالت تازه کولو سره د کمېسيون رخصتۍ ترلاسه کړي، د سیټ لګښت زیاتولو نه کوي. دنده د Autofocus مخکې، زه په تمرکز کې اشاره کړم. دا پروسه په دوامداره وختونو کې د نمونې ساینس کې ترسره کیږي ځکه چې د نمونې غیر عادلانه کارول کیږي، کوم چې په ځانګړي ډول په لوړه کچه ښودل کیږي. دا اړتیا لري چې د نمونې کچه څارنه وکړي او د تمرکز په وخت کې تنظیم کړئ. دلته دا څنګه کار کوي. لاندې ګرافې د فټنس کچه او وخت تر منځ د اړیکو ښيي. موږ سره د نښلیدو انځور پیل کوو، په دوامداره توګه د مرحله ته د غوره فټنس پوزیشن ته حرکت کوو. د سکرین زه د ډیجیټل کولو په ګرځنده سایټ کې د ډیجیټل کولو په پام کې ورکړم. دا په دې کې مهمه ده چې ډیجیټل کولو کولی شي په مختلفو پراختیا کې ترسره شي: د 5x څخه تر 40x. د کم زوم کچه کې، دا په اسانۍ سره د نښلیدو محدودیتونو ته لارښوونې او څیړنه کوي، په داسې حال کې چې د لوړولو پراختیا کې، د سیلولر تفصيلونه ښکاره کیږي. زموږ په صورت کې، موږ په دوه کچه کار کوو: Boundary detection at 4x magnification. The algorithm scans the entire slide, determines the smear area, and generates a boundary map for the next stage. The output is something like a heat map. For example, from the low-magnification image on the left, we obtain a matrix that we then use to plan the steps for navigating at higher magnification: Scanning the smear at 20x magnification (or another level). The algorithm scans and saves images for subsequent assembly into a single map. Scanning proceeds line by line, within the boundaries of the smear. A photo is captured for stitching when: the image is in focus the controller is in an idle state, i.e., not moving د دې لپاره چې کاروونکي هر وخت د لټونونو بدلولو ته اړتیا نلري، موږ په ورته وخت کې د بیلټ کې د ټولو بیلټونو په اړه د سرحدی تشخیص او سکن کولو ترسره کوو، په داسې حال کې چې د مخکښ بیلټ په دوامداره توګه د سایټ ته اپلوډ کړئ. د انځور د سټیشن یا ترکیب وروسته په سایټ کې ترسره کیږي، مګر دا د انفرادی مقاله لپاره یو موضوع دی. د پایلو دا پروژې demonstrated that even a smartphone from 2018 can handle tasks that previously required desktops, servers, and expensive automated microscopes. Naturally, there’s still a lot left behind the scenes: from dataset collection to fine-tuning exposure settings. If you’re interested, I would be happy to cover that separately. Feel free to ask questions, share your own experiences, and together we will create a follow-up or dive deeper into specific aspects. Thanks for reading! ایا موږ اړیکه ونیسئ! د Ansar ایمیل: ansaril3g@gmail.com لینډینډ: Ansar Zhalyal د تلیفون: @celly_ai د امین ایمیل: amin.benarieb@gmail.com لینډینډ: Amin Benarieb د تلیفون: @aminbenarieb