PDA

View Full Version : بدست آوردن مساحت تابلو های سردر مغازه های شهری بواسطه پردازش تصویر



sari-1369
سه شنبه 13 دی 1390, 12:06 عصر
با سلام خدمت اساتید .

من توی یک پروژه نیاز دارم که از تابلو های تبلیغاتی سطح شهر یا تابلوی سردر مغازه ها عکسی گرفته بشه و نرم افزار بتونه مساحت اون رو محاسبه کنه . و حالا میخواستم دوستانی که اطلاعاتی دارند راهنمایی کنن که ؛

1. در کل به چه روش هایی میشه این کار رو انجام داد ؟
2. آیا در روش هایی که عنوان میشه به غیر از دوربین به سخت افزار دیگه ای هم نیازه که کار سریعتر و دقیقتر انجام بشه ؟
3. آیا باید محدودیت هایی هم برای کاربر تصویر گیرنده تعریف بشه و اینکه راهی برای رفع این محدودیت ها هست ؟

و ...

پیشاپیش از راهنماییتون ممنونم . :لبخندساده:

sari-1369
چهارشنبه 14 دی 1390, 18:09 عصر
:( اساتید پیشنهادی ندارن ؟

مصطفی ساتکی
شنبه 17 دی 1390, 08:03 صبح
شما به یک دوربین استریو نیاز دارید که با اون بتونید عمق و پرسپکتیو را محاسبه نماید و به این ترتیب مساحت تابلوها به راحتی قابل محاسبه می باشد

sari-1369
شنبه 17 دی 1390, 20:54 عصر
ممنون بابت راهنماییتون .

من هیچ اطلاعاتی در مورد اینها ندارم و کلی هم توی نت سرچ کردم اما به نتیجه مناسبی نرسیدم :ناراحت: اگر ممکنه بیشتر راهنمایی کنید یا یه منبع مناسب بهم معرفی کنید .

راسی ، دوربین های استریو منظور همین دوربین های 3دی که 2 تا لنز دارن هست یا دوربین های نقشه کشی ؟

soroushp
شنبه 17 دی 1390, 21:36 عصر
اول موضوع جالبی داری کار می کنی ؛
من احتمال می دم باید یک مقدار رو تشخیص الگو کار کنی ، وقتی الگو آموزش دید مثل شبکه های عصبی از اون به بعد خودش می تونه تشخیص بده، فقط مسئله ی اصلی اینجاست که شما چطور می خوای طول و عرض تابلو رو تعیین کنی مگر اینکه اون تابع که می نویسی خروجیه به صورت غیر قطعی یا احتمال نزدیک به واقعیت باشه،
موفق باشی

sari-1369
شنبه 17 دی 1390, 23:44 عصر
فکر کنم اگر فاصله دوربین تا تابلو رو بتونم بدست بیارم ، محاسبه طول و عرض تابلو کار سختی نباشه . اگر اشتباه نکنم یه نسبت گیریه فقط.

sari-1369
شنبه 17 دی 1390, 23:45 عصر
الان یه مقاله ای پیدا کردم ، نمیدونم به دردم میخوره یا نه .

ارائه روشي جديد براي فاصله يابي با دوربين با استفاده از درونيابي لاگرانژ

http://www.civilica.com/images/report_01.gifخلاصه مقاله:

در اين مقاله ضمن بررسي روشهاي مختلف محاسبه فاصله ، روشي براي اندازه گيري فاصله شيء از دوربين ( عمق صحنه ) توسط يك دوربين ارائه مي شود. روش پيشنهادي بر اساس فرمول درونيابي لاگرانژ است. براي پيدا كردن پارامترهاي تابع درونياب ، يك مجموعه خطوط با فاصله مشخص از دوربين مورد استفاده قرار مي گيرند و سپس فاصله تصوير هر خط در عكس برداشته شده از لبه پائين تصوير ( به عنوان نقطه مرجع ) محاسبه مي شود. نتايج بدست آمده براي روش پيشنهادي گوياي دقت بالا و حجم عمليات كم نسبت به روشهاي مورد بحث است


http://www.civilica.com/Paper-ICMVIP02-ICMVIP02_062.html

soroushp
یک شنبه 18 دی 1390, 08:37 صبح
آره با tan میشه همچین کاری رو کرد ، فقط مقاله ای که لینکش رو گذاشتی دانلود نداره ، باید چه کرد؟

مصطفی ساتکی
یک شنبه 18 دی 1390, 11:13 صبح
شما با یک دوربین نمی تونید به هیچ وجه همچین کاری رو انجام بدید عمق رو با 2 دوربین محاسبه می کنند و با یک دوربین تنها راهش اینه که فاصله مرکز object تا دوربین رو مشخص کنید که این هم اندازه های با یک تقریبی بدست میاد.
اگر هم دوربینش رو تهیه کردید می تونید از kinect sdk استفاده کنید

sari-1369
یک شنبه 18 دی 1390, 15:33 عصر
آره با tan میشه همچین کاری رو کرد ، فقط مقاله ای که لینکش رو گذاشتی دانلود نداره ، باید چه کرد؟

این هم متن مقاله ، البته کمی بهم ریختست .

sari-1369
یک شنبه 18 دی 1390, 15:38 عصر
شما با یک دوربین نمی تونید به هیچ وجه همچین کاری رو انجام بدید عمق رو با 2 دوربین محاسبه می کنند و با یک دوربین تنها راهش اینه که فاصله مرکز object تا دوربین رو مشخص کنید که این هم اندازه های با یک تقریبی بدست میاد.
اگر هم دوربینش رو تهیه کردید می تونید از kinect sdk استفاده کنید

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

در مورد کیت نرم افزاری کینکت ، آیا همچین قابلیتی داره که تصاویری به جز تصاویر گرفته شده توسط کینکت رو پردازش کنه ؟ یکم قاطی کرم این قسمتو :لبخند: اگه مقدوره یکم بیشتر توضیح بدین.

aryasoft2872
سه شنبه 20 دی 1390, 23:30 عصر
با کینکت مسلما میشه چون من دیدم بعضی جاها اندازه اشیائ رو میگه...(دارم که میگم :دی)

sari-1369
چهارشنبه 21 دی 1390, 23:44 عصر
در مورد اینکه با کینکت میشه بحثی نیست ، مشکل من اینه که میشه تصاویری که با غیر از کینکت گرفته شده رو توسط توابع کینکت پردازش کرد ؟ و خروجی گرفت ؟

مصطفی ساتکی
یک شنبه 25 دی 1390, 21:58 عصر
شما برای انجام چنین کاری بایستی 2 دوربین از یک برند و یک مدل داشته باشید معمولاً در اکثر مواقع دارای تصویر یکسانی هستند سعی کنید دوربینی انتخاب کنید که اعوجاج کمتری داشته باشید و گرنه مجبورید این اعوجاج رو برطرف کنید که در پایان در این باره توضیحاتی می دم.
شما هدفتون به این صورته که در فاصله n متری از دوربین خطوطی دیده میشه که میخاید متراژ این خطوط رو داشته باشید.
به عملیاتی که در machine vision از 2 دوربین استفاده میشه Stereoscopy گفته میشه که شما بایستی در ابتدا بتونید فاصله شی مورد نظر از دوربین D رو بدست بیارید برای اینکار بایستی مراحل زیر رو طی کنید
1- دو دوربین فوق رو برروی یک شاسی به فاصله B (فاصله مرکز 2 لنز از یکدیگر) محکم فیت کنید توجه داشته باشید که مرکز 2 لنز به صورت افقی بایستی تراز باشد.
2- تصاویر 2 دوربین بایستی به صورت همزمان شات شود.
زاویه دید دوربین برابر با phi است که برای هر 2 دوربین یکسان می باشد.
نقطه مورد نظر شما که مایلید فاصله اون رو محاسبه کنید زاویه رو با راستای لنز تشکیل می دهد که به آنها phiL و phiR گفته می شود.
راستای نقطه مورد نظر بردار مابین لنز چپ و راست را در نقطه قطع می کند که فاصله مرکز لنز چپ تا این نقطه BL و فاصله لنز راست تا این نقطه BR گفته می شود.
حال B= BL + BR
BL = D * tan(phiL)
BR = D * tan(phiR)
B= D* tan(phiL) + D * tan(phiR)
D = B/(tan(phiL) + tan(phiR))
به این ترتیب فاصله نقطه مورد نظر از دوربین بدست آمد.
حالا یک خط کش یک متری تهیه کنید و در فاصله 1 متری از دوبین قرار گرفته و طول خط کش به پیکسل بدست آورید همین کار رو برای فاصله 2 متری تکرار کنید مسلماً اندازه کوچکتری بدست آوردید.
scale = dis2m / dis1m

حالا فاصله 2 نقطه را به پیکسل R بدست آورید تا با استفاده از رابطه زیر اندازه واقعی به متر را بدست آورید.

A=R/(dis2m/D)

دوربین های وب کم یا دوربین موبایل به استفاده از لنز های ارزان قیمت و محدودیت فاصله کانونی تصاویرشون دارای اعوجاج از نوع radial هستند که به صورت بشکه ای و بالشتکی ظاهر میشه
یک مشکل دیگر که دارن زمان اسمبل کردن لنز روی imager مربوط به CCD رخ می ده که به موازات هم قرار نمی گیرند که در این موارد از نوع tangential می باشد
که با بسط تیلر پارامترهای مدل اعوجاج در هر 2 حالت رو بدست میارن و بوسیله optimization این میزان خطا رو به کمک یک chessboard بدست میارن

sari-1369
یک شنبه 25 دی 1390, 22:08 عصر
ممنون از پاسختون :لبخندساده:

میرم که ببینم چه میکنم . :دی

--------------------------------------------------

راستی به نظر شما ، این دوربین ها ، با فرض اینکه بشه از هر لنز اونها یک تصویر مجزا دریافت کرد میتونه به ما کمک کنه ؟

http://www.digikala.com/Products/DigitalCamera/Fujifilm/DigitalCamera-Fujifilm-FinePix-REAL-3D-W3/Original/Pic04.jpg

http://www.digikala.com/Products/DigitalCamera/Panasonic/DigitalCamera-Panasonic-Lumix-DMC-3D1/Original/Pic04.jpg

مصطفی ساتکی
دوشنبه 26 دی 1390, 07:52 صبح
آره این دوربین هم خوبه با این دوربین ها می تونید offline کار کنید

maktoom
سه شنبه 27 دی 1390, 01:56 صبح
سلام
چیزی درمورد کینکت(Kinect) می دونید؟ فکر می کنم چیزی که شما لازم دارید همین کینکت باشه.
کینکت یه کنسول بازیه. دارای دو تا دوربین و یه سنسور مادون قرمز.
یکی از دوربین ها برای تشخیص رنگ و اون یکی برای عمق تصویره. یه پنل صوتی هم داره که اون رو فرمان پذیر از طریق صوت کرده.
ماکروسافت مدتیه که SDK های مربوط به اونرو بصورت رایگان گذاشته و از ملت دعوت کرده تا بیان این کنسول رو میشه گفت هک کنن.
در نمایشگاه اخیر CES هم که ماکروسافت کینکت مختص ویندوز 7 رو معرفی کرد که باهاش میشه با ویندوز کار کرد.
کافیه کینکتتون رو با کابل یو اس بیه مخصوصش به سیستمتون وصل کنید و با SDK ها و توابع صوتی ماکروسافت و برنامه نویسی اونو برای کار خودتون بومی سازی کنید.

موفق باشید

mosyhey
سه شنبه 27 دی 1390, 05:16 صبح
با سلام.

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

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


http://upload.wikimedia.org/wikipedia/commons/thumb/7/71/Lens3.svg/550px-Lens3.svg.png

http://upload.wikimedia.org/wikipedia/en/math/e/7/2/e722459e187d4505194b80c1f005605d.png

خودم با این روش و فرمول چند آزمایش کردم و نتیجه نگرفتم، اما در دوربین های پیشرفته تر، پارامتر فاصله که توسط خود دوربین اندازه گرفته می شود در اطلاعات exif عکس روبروی داده Distance و یا focusDistance نوشته می شود که می توان این اندازه را یکراست از عکس استخراج کرد. مثلاً اطلاعات exif این عکس (http://aks.akkasee.com/photos/146741) و این عکس (http://aks.akkasee.com/photos/199864) را ببینید. به نظر می آید اگر فوکوس درست انجام شود، در فاصله های کمتر از بینهایت اپتیکی این اندازه ها دقیق باشد.

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

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

مصطفی ساتکی
سه شنبه 27 دی 1390, 11:24 صبح
یکی از دوربین ها برای تشخیص رنگ و اون یکی برای عمق تصویره. یه پنل صوتی هم داره که اون رو فرمان پذیر از طریق صوت کرده.

هر دو دوربین یکسان و رنگ و عمق بوسیله هر 2 دوربین محاسبه میشه.



احتمالاً هرچه دیافراگم باز تر باشد بهتر است چون فوکوس دقیق تر انجام می شود.
این یک trade off که دیافراگم چقدر باز باشه بسته به موقعیته شخص داره که از کجا در حال تصویر برداریه.