سفر شما به دوربین نقطه ی بالا بر روی لبه با سخت افزار شروع میشه شما باید یک سوسی سی با NPU قدرتمند انتخاب کنید. اين انتخاب پايه موفقيته
کلید باز کردن باز کردن اجرای AI حداکثر یک خط لوله داده صفر است. این روش کارمند اجازه می دهد پردازشگر تصویر روی SoC مستقیماً NPU را تغذیه کند.
هدایت کردن این فرآیند شامل سه ایده هسته است شما باید معماری لوله را درک کنید، تصویر هوشمندان AI و بهینه سازی مدل NPU.
حذف کلید
- یک سوسیسی سی با NPU قدرتمند انتخاب کنید. این انتخاب سخت افزار برای دوربین AI خوب مهم است.
- ایجاد یک خط خط خط داده صفر. این مستقیماً ISP و NPU را متصل می کند. اين باعث ميشه اي اي آي شما سريعتر حرکت کنيد و از قدرت کمتر استفاده کنيد
- آژانس رو برای مدل AI شما تنظیم کنید این به معنی تنظیمات دوربین برای کمک به اینکه بهتر ببینه
- مدل AI خود را برای NPU بهره بگیرید استفاده از کوانتیزی INT8 تا مدل شما کوچکتر و سریعتر کنید اين بهش کمک ميکنه که با دستگاه هاي لبه ي خوب کار کنه.
:کامترا اِي
در یک سی سی مدرن، شما با یک پردازشگر کار نمی کنید. تو داري ارکستريشتاب دهنده های تخصصی. فهمیدن چگونه این قسمت ها با هم کار می کنند برای ساختن یک سیستم AI قدرتمند دوربین روی لبه مهم است. دو مهمترین بازیکن در این ارکستر پردازش سیگنال تصویر (ISP) و واحد پردازش نفوذ (NPU) هستند.
: "آسپ" روی "آیسپ" در "پراکسیسیسین":
به عنوان دستيار باهوش سازمان NPU فکر کن شغلش بيشتر از ساختن عکسها خوب به نظر ميرسه در یک خط لوله AI، ISP به عنوان شتاب دهنده سخت افزار برای پیش پردازش عمل می کند. اين داده ها رو براي شبکه عصبي آماده ميکنه برای مثال، مدل AI شما ممکن است یک تصویر کوچک ۲۲۴×224 پیکسل لازم باشد، اما دوربینحسگريه تصوير بزرگ 4 کي گرفتهISP از یک لوله خروجی اختصاص داده شده برای تغییر اندازه ی تصویر استفاده می کند، نجاتت دادن از اين قدم آهسته در نرم افزار. همچنین کارهایی مانند تبدیل فضاهای رنگ برای تطبیق به شبکه عصبی شما انتظار دارد.
دفتر مرکز وینس
واحد پردازش خنثي مغز عمليات اي آي شماست.معماری داوینچی NPU های سیلیکون قدرت خام برای تصویر AI را فراهم می کند.طراحيش عملکرد فوق العاده اي براي بارهاي پيچيده سازي کار ميکنه
قلب معماری داوینچی واحد کامپیوتری 3D مکعب آن است. این هسته AI تخصصی برای سرعت ریاضی ماتریس طراحی شده است که مبنای تمام محاسبات شبکه عصبی را تشکیل می دهد.
این ساختار منحصربه فرد به NPU اجازه می دهد هزاران عملیات در یک چرخه ساعت انجام دهد.این دقت های چندین داده را پشتیبانی می کند که برای مرحله های متفاوت توسعه AI انعطاف پذیری می کند و اطمینان می دهد که تاثیر قدرت پایین و کاربرد. این موتوری است که شتاب سخت افزار را برای فرض AI فراهم می کند.
اطلاعات آي اسپ-انپو:
جادوي واقعي اتفاق مي افته وقتي آي اسپ و NPU با هم کار ميکنه آنها یک پل اطلاعات مستقیم روی سوسی شکل می دهند و یک حلقه بازخورد قدرتمندی ایجاد می کنند. اينجوري کار ميکنه:
- NPU از انرژی پردازش تصویر خود استفاده می کند تا شخصی را در چارچوب تشخیص دهد.
- اون موقعيت دقيقي اون شخص رو به آژانس ميگه.
- سپس ISP تنظیمات خود را، مانند افشایی و تمرکز، بر روی آن منطقه خاصی برای گرفتن تصویر بسیار روشن تر از شخص را تنظیم می کند.
- این تصویر بهبود شده برای تحلیل AI دقیق تر به NPU فرستاده می شود.
این همکاری محکم به عملکرد کلی سیستم و دقت نهایی AI شما را افزایش می دهد.
: . .
شما مولفه های کلید را دارید:ISP و NPU. حالا، بايد اونا رو داخل موبايل بهم وصل کني. این قسمت به شما گام های عملی را برای ساخت یک خط لوله اطلاعاتی با عملی بالا می دهد. چگونه پیکربندی سخت افزار را یاد می گیرید ، مدیریت کنیدحافظهبه طور فعاليت، و اجزاء رو به هم پيوند کنيد. این فرایند برای کاربرد دوربین AI شما در لبه ضروری است.
ارتباط برقرار کردن :
اولین گام شما این است که به ISP بگید چگونه داده های تصویر را برای مدل AI شما آماده کند. شبکه عصبی شما نیازهای ورودی خاصی داره برای مثال، ممکن است انتظار داشته باشد که تصویر 224x224 پیکسل در قالب رنگ BGR. باید یک کانال خروجی ISP را پیکربندی کنید تا دقیقا با این نیازها تطبیق شود.
با استفاده از اين ميتوني به اين کار برسيصفحه ی پردازش رسانه های HiSiliconCommentاپي این یک راهنمای ساده است:
- تعریف خصیصه های مجال: برای نگهداری تنظیمات یک ساختار در کد خود ایجاد می کنید.
- تنظیم دقتی: شما عرض دقیق و ارتفاع نیازهای شبکه عصبی خود را مشخص می کنید.
- تنظیم قالب تصویردل: قالب رنگی را انتخاب می کنید که لایه ورودی مدل خود را مطابقت دارد.
- اعمال پیکربندی: شما به یک تابعی میگی
HI_MPI_VI_SetChnAtr((این تنظیمات را در یک کانال مشخص ISP در موبایل سوسی استفاده کنید.
این پیکربندی مستقیم تمام کار پیش پردازش به سخت افزار ISP خاموش می شود. کد کاربرد اصلی شما داده ها رو دریافت میکنه که قبلاً برای تصویر AI عالیه
:
مديريت حافظه ضعيف ميتونه عمليات درخواست شما رو از دست بده در یک سوسی بر اساس ARM شما باید حافظه را با احتیاط کنید
- تکه فرم: تخصص کردن و آزاد کردن حافظه می تواند فاصله های کوچک و غیرقابل استفاده را رها کند. در نهايت، نمي تونيد به اندازه کافي بلوکي پيدا کنيد
- خارج کردن حافظه: فراموش کردن حافظه اختصاص داده شده به آرامی تمام منابع موجود را مصرف می کند و منجر به سقوط سیستم می شود.
- مرجعهای گمشده: اشاره های به حافظه می توانند از دست رفته باشند، که بعداً غیرممکن ساختن حافظه را آزاد می کند.
برای جلوگیری از این مشکلات نباید ازش استفاده کنیتخصیص حافظۀ پویایی استاندارد. در عوض، شما باید حافظه را از یک استخر بافر ویدئویی (VB) در SoC تخلیه کنید. اين بهت يه قطعه ي متحد از حافظه فيزيکي ميده
NPU با این نوع حافظه بهترین کار میکنه برای دسترسی داده بهینه ای ، NPU استفاده می کندترکیب حافظه. این روش لازمه که داده ها در یک بلوک بدون شکسته باشند. استفاده از تابعیHI_MPI_VB_GetBlock:از کتابخانه ي "هيسيلوون MPP" مطمئن ميشه که داده هاي شما به طور کامل طبيعي براي NPU است. این تکنیک بنیادی برای ساختن یک برنامه ی سریع و پایدار موبایل AI است که عملکرد پایین و قدرت پایدار را ارائه می دهد.
:پيپيلن توي سرد :
مرحله نهایی این است که اتصال اطلاعات فیزیکی روی سوسی است. شما به موبایل می گویند که خروجی ISP را مستقیما به ورودی NPU بفرستد. این "بندی" لوله ی صفر را ایجاد می کند. این نیاز به پردازش پرداخت برای کپی اطلاعات رو از بین میبره که زمان و قدرت رو ذخیره میکنه
شما از یک تابع قدرتمند استفاده می کنید تا این ارتباط را بسازید:HI_MPI_SYS_Bin. این تابع متن) کانال ISP (و مقصد) NPU ( را به عنوان آرگومان می گیرد.
این شکلی است که کد در C.C.
// منبع داده را تعریف کنید.
MPP_CHN_S stSrcChn;
StSrcChn.enModId = HI_ID_VI ؛ // شناسه ی پیمانه برای ورودی ویدئویی
StSrcChn.s32DevId = 0; // شناسۀ دستگاهی
StSrcChn.s32ChnId = 0; // شناسۀ کانل
// مقصد داده ها (NPU) را تعریف کنید.
MPP_CHN_S stDestChn;
StDestChn.enModId
شناسه ی دستگاه stDestChn.s32DevId = 0;/ /
StDestChn.s32ChnId = 0; // شناسه ی کانل
// مجرای ISP را مستقیم به NPU بستگی دارد
HI_S32 s32Ret = HI_MPI_SYS_Bind( & stSrcChn, &stDestChn);
اگه (s32 رت == HI_SUCCESS)
// در حال حاضر لوله ی صفر فعال است!
// ISP به طور خودکار NPU را تغذیه می کند.
:
با اين تماس ساده، شما سخت افزارهاي موبايل رو سازمان داديد ISP اکنون به طور مستقیماً NPU را تغذیه می کند و عملکرد بیشینه AI برای شبکه عصبی شما را فعال می کند. این هسته ی توسعه ای آی مدرن است.
: ...
ساخت خط لوله تنها قدم اوله حالا بايد با مدل AI خودت تنظيم کني تنظیم سنتی ISP باعث می شود که تصاویر برای چشم انسان خوب به نظر بیاد با این حال، تولید AI- آگاهی داده های تصویر را برای شبکه عصبی شما بهینه می دهد. این تغییر فکری برای رسیدن بهترین اجرای "آی" توی شماSoC.
وظيفه های اختصاصی:
شما می توانید از ISP برای تغییر اندازه تصاویر بیشتر استفاده کنید. به عنوان یک پردازش پیش وقف شده برای برنامه ی الکترونیکی شما فکر کنید. ISP می تواند وظیفه های پیچیده مانند اصلاح هندسی از یک لنز زاویه گسترده اين اطمينان ميده که شبکه عصبي شما تصوير تميز و بدون رسيدگي دريافت ميکنه خاموش کردن این شغل ها به ISP منابع CPU را آزاد می کند و یک سیستم کارآمدتر برای دستگاه لبه شما ایجاد می کند.
:براي عشق :
عکسي که برات عالي به نظر مياد ممکنه مدل اي آي شما رو گيج کنه تنظیماتی که دید انسان را بهبود می دهد گاهی اوقات می تواند دید ماشین را صدمه بزند. برای مثال، کاهش صداهای پرخاش کننده ممکن است جزئیات مهمی که مدل شما برای مثال دقیق نیاز دارد برداشته شود.
مطالعات نشان می دهد که تغییر تنظیمات ISP از یک پیکربندی استاندارد می تواند کاربرد تشخیص شیء کاهش دهد. کلید اینه که تعادل مناسب وظیفه ای مشخص شما رو پیدا کنی
- معمارهای شبکه عصبی متفاوت به تغییرات ISP واکنش عکس العمل متفاوتی دارند. به عنوان مثال یک استخوان پشتی ۵۰ می تواند از کاهش سر و صدا حساس تر باشد.
- شما می توانید با آموزش AI خود را با تصاویری که تنظیمات متفاوت ISP دارند، مدل را بهبود دهید.
- این پیشرفت محدودیتی وجود دارد. مدل شما همیشه به حداقل تیزی نیاز دارد تا به خوبی انجام بدید
هدف شما این است که پارامترهای ISP مانند متضاد، اشباع و نظارت برای حداکثر دقیق ترجیح دادن، نه فقط هزینه تصویر. این روش طراحی به عملکرد کلی سیستم را بهبود می دهد.
. . .
پیشرفته ترین تکنیک ایجاد یک حلقه بازخورد جایی است که AI مستقیماً ISP را کنترل می کند. NPU یک چارچوب را تحلیل می کند و به ISP می گوید چگونه برای یکی بعدی تنظیم کند. این یک سیستم باهوش و تصحیح خود را در سوسی را ایجاد می کند. برای مثال،یک سیستم نامحدود-ISP از این روش برای ساخت تنظیم زمان واقعی استفاده می کند.
- تعادل خودکار سفید) AWB (: NPU می تواند به ISP کمک کند تا نادیده گرفتن مناطق بیش از اندازه گیری برای محاسبه یک تعادل سفید دقیق تر باشد.
- افشاگر خودکار) AE (: AI می تواند سابقه تصویر را تحلیل کند و به ISP بگوید که سود دیجیتال را تنظیم کند و روشنایی برای تحلیل بهتری را اصلاح کند.
این حلقه محکم بین NPU و ISP مطمئن می شود که دوربین همیشه بهترین داده های ممکن برای AI شما را گرفته است.
:
لوله اطلاعاتت ساخته شده حالا شما باید مدل AI خود را برای واحد پردازش خنثی بهینه سازی کنید. یک مدل آموزش دیده شده در یک سرور قدرتمند به صورت کارآمد روی هادستگاه لبه ی کمتریبدون تغيير. شما باید مدل خود را کوچکتر و سریعتر کنید این فرایند شامل کمانتیزایی، استفاده از اپراتورهای درست و آزمایش دقیق است.
اینترنتی 8 :
شما می توانید مدل خود را با تغییر نوع داده هاش سریع کنید. بیشتر شبکه های عصبی با استفاده از اعداد شناوری ۳۲ بیتی (FP32) آموزش دیده می شوند. کمیت سازی فرایند تبدیل مدل شما برای استفاده از عدد ۸ بیتی) INT8 است. اين...مدل شما چهار برابر کوچکتر ميکنه. این برای درخواست بارهای کارهای AI روی سوسی ضروری است.
يک آزمايش منطقه اي يک پرش عظيم نشون ميده.یک مدل که در ۱۲ فریم در ثانیه با FP32 می تواند به ۳۰ فریم در ثانیه با INT8 رسیده است..
| دقیق | FPS) فرم ها در هر ثانیه ( |
|---|---|
| FP32GenericName | ۱۲ |
| INT8 | ۳۰ |
ميتوني ازش استفاده کنيابزارهايي مثل تبديل کننده ي تنسور فلو ليتبرای انجام این بهینه سازی این ابزار مدل شما را تحلیل می کند و آن را به قالب INT8 تبدیل می کند و آن را برای NPU آماده می کند.
# این مثال نشان می دهد که چگونه یک مدل تبدیل به INT8
واردات تانسور به عنوان tf
تبدیلگر = tf.lite.TFLiteConverter.from_saved_ model(saved_ model_dir)
تبدیل.optimizations = [tf.lite.Optimize.DEFAULT]
#... تنظیمات دیگر برای اجرای کمون سازی INT8
Tflite_quant_model = تبدیل.convert ().
استفاده از اپراتور های NPU-FRIENDLY:
NPU یک پردازنده تخصص است. این طراحی شده برای سرعت عملیات ریاضی خاصی استفاده در شبکه های عصبی است. برای رسیدن به نمایش بیشینه، مدل AI شما باید از این اپراتورهای "NPU- دوستانه" استفاده کند.
معماری داوینچی انپوشتاب سخت افزار برای عملیات هسته، از جمله:
- لغو
- در حال حاضر
- فعال سازی
- پیوند کامل
اگر مدل شما از اوپراتوری که در این لیست نیستند استفاده کند، آنها روی پردازشگاه آهسته تر اجرا خواهند کرد. اين يه ضربه اي ايجاد ميکنه شما باید شبکه عصبی خود را تغییر دهید تا جایگزین عملگرهای پشتیبانی نشده را با افزارهایی که با غیرقابل تغییر دهید. برای مثال، شما می توانید از تکنیک هایی مانند استفاده کنید.ترکیب ارتباطیبراي ترکيب چندين عمليات ساده به يکي از يکي که دوست داشته باشه
:
بهتر شدن يه قدم يک بار نيست باید تغییراتت رو آزمایش و تأیید کنی ابزار پروفایل به شما کمک می کند که نمایش مدل خود را در سخت افزارها تحلیل کنید. اونا دقيقا به شما نشون ميدن که هر لایه از مدل شما چقدر زمان طول ميکشه
با استفاده از ابزار اشاره AI ، می توانید شناسایی کنید که کدام لایه ها روی NPU در حال اجرا هستند و آنها به پردازشگاه باز می گردند. اين اطلاعات حياتيه به شما کمک میکنه که نقاشی ها رو پیدا کنی و تایید میکنه که کوانتیزیت و تغییرات عملیات موفق بوده اين بررسي نهايي مطمئن ميشه که شما بهترين اجراي امکان پذيرايي براي برنامه ي لبه ات رو ميگيريد
افزودن آي اسپ-انپو:
پیوند محکم بین ISP و NPU تازه شروع است. شما شاهد یک انقلاب در مورد طراحی سیستم های کامپیوتر هستید. آینده به یک ترکیب کامل از این اجزای اشاره می کند که سیستم های دوربین AI باهوش تر، سریعتر و کارآمدتر ایجاد می کند. این تکامل کلید را دنبال می کندگرایش های تکنولوژی های دیپسکه چيزي رو که در لبه ممکنه دوباره تعريف ميکنه
اينتر هوارد وار:
طراحان چیپ به طور فیزیکی از واحد پردازش آی اسپ و نفوذ رو به هم نزدیک تر در موبایل SoC حرکت می کنند. این یکپارچگی محکم تر روی سیلیکون مسیر سفر اطلاعات را کوتاه می کند. نتیجه یک افزایش قابل توجهی در عملکرد و کاهش استفاده از انرژی است. این باعث می شود که همه ی سوسی بر اساس ARM استفاده کننده تر باشد. شما سریعتر با خارج از باطری کمتری یک هدف حیاتی برای تمام کاربردهای موبایل و قدرت پایین. این یکپارچه یک مرکز هسته به سمت نسل بعدیتراشه های پایین قدرت کمی.
:
پرش بزرگ بعدی یک خط لوله ISP است که کاملاً توسط AI راه می گیرد. به جای اینکه شما یک شبکه عصبی به طور خودکار انجامش می دهد. AI پارامترهای تصویر را در زمان واقعی تنظیم می کند تا بهترین داده را برای یک تکلیف دیدگاه مشخص می کند. تحقيقات اخير نشون ميده که اين اتفاق افتاده
پروژه های پیشگامی این مفهوم را نشان می دهند:
- ParamISPاز یک ماژول عصبی برای کنترل توابع ISP بر اساس تنظیمات دوربین مانند افشای و حساسیت استفاده می کند.
- سازگارISPاز یادگیری کمک برای ساخت بهترین خط لوله ISP برای تشخیص شیء استفاده میکنه
:
این ترکیب قدرتمند یک موج جدید از برنامه ها برای دستگاه های لبه ی AI را باز می کند. محصولات آينده شما قابليت هاي تصويري رو دارن که امروز به نظر ميرسه دوربین های خانگی هوشمندانه فقط حرکت را تشخیص نمی دهند؛ آنها متن و هویت با دقت باورنکردنی را درک می کنند. در اتومبیل، ماشین ها شرایط جاده را با روشنی بیشتر در نظر می گیرند و رانندگی را امن تر می سازند. این سیستم های قدرت پایین الکترونیکی از ابر مستقیما به لبه میاره و قدرتمند رو قادر میکنه همه جا تصميم بگيريم
حالا کليدهاي برتري رو داري تو يه لوله پليس صفر رو روي ساک موبايل ميسازي و با شبکه عصبيت و مدل شما را برای انپو بهینه کنید.
بهترين نتيجه ي دوربين روي ساک موبايل قفل ميکنه
آینده ی لبه یک سوک کاملا کمک شده است. تو بايد اين طراحي جديد رو براي پروژه ي کمکي بعدي خودت بپذيري
FAQ
چرا لوله لوله صفر اينقدر مهمه؟
برای سرعت و کارآگاه لازم داری از کپی اطلاعات بین ISP و NPU جلوگیری میکنه این پیوند سخت افزار مستقیم قدرت را حفظ می کند و کاربرد AI شما را بسیار سریعتر در دستگاه لبه اجرا می کند.
يه چيپ ويژه براي اين ميخوام؟
آره، تو بهترين نتايج رو با يک موبايل مشخص ميگيري شما باید یک تراشه انتخاب کنید با یک NPU قدرتمند و یک ISP که می توانید با هم متصل کنید.تراشه های سیلیکنمثال خوبی برای این کار است.
کوانتیز سازی INT8 چیه؟
کوچیک سازی مدل AI شما را کوچک تر و سریعتر می کند. شما مدل رياضي رو از اعداد 32-بيت پيچيده به عدد 8-بيت ساده تغيير ميدي
این تغییر ساده می تونه باعث بشه مدل شما دو برابر سریع تر در NPU بشه
آیا یادگیری این پروسه سخت است ؟
اولش به نظر پیچیده میاد با این حال، مرحله های اصلی ساده هستند. از تابع های API مشخص استفاده می کنیدHI_MPI_SYS_Bin. ابزارهاي چيپ سازنده ها بهتون کمک ميکنن که لوله پله رو به قدم بسازين تو ميتوني اين روند رو بررسي کني






