ايران ويج

نسخه‌ی کامل: تشخیص پلاک خودرو با پردازش تصویر (پروژه کامل)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6
(۰۳-آبان-۱۳۹۱, ۲۰:۱۶:۴۸)mroo نوشته است: [ -> ][تصویر:  1.bmp]



یه سوال دیگه اینکه بجز نرم افزار نتلب به نرم دیگه ای نیاز هست یا خیر ؟
یه مقاله خوندم از برنامه demo ستفاده کرده بود و اینکه نظر شما راجع به فلوچارت ضمیمه شده چیه ؟

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


(۰۳-آبان-۱۳۹۱, ۲۰:۱۶:۴۸)mroo نوشته است: [ -> ][تصویر:  1.bmp]



یه سوال دیگه اینکه بجز نرم افزار نتلب به نرم دیگه ای نیاز هست یا خیر ؟
یه مقاله خوندم از برنامه demo ستفاده کرده بود و اینکه نظر شما راجع به فلوچارت ضمیمه شده چیه ؟

این فلوچارت یک تمپلت ساده است که درواقع پایه ی همه ی برنامه های تشخیص و خوانش پلاک خودرو است. چیز جدیدی نداره.
در مورد demo اگر منظورتون interface یا رابط گرافیکیه باید دید که اگه پایه برنامه نویسیش متلب بوده پس به احتمال زیاد با GUI طراحی شده در غیر اینطور اکثرا با C# هم طراحی میکنند.

(۰۲-آبان-۱۳۹۱, ۱۲:۴۹:۴۹)arya_sad88 نوشته است: [ -> ]سلام با تشکر
من چیز زیادی از پردازش نمیدونم ولی یه سوال دارم: ایا میشه متلب رو روی یک پردازنده بالا بیاریم که یه برد مجزا داشته باشیم که بشه بدون نیاز به اتصال به کامپیوتر خودش درجا حروف پلاک رو تشخیص بده؟
یعنی فرض کنید یه موبایل داریم که به صورت فیزیکی وقتی جلوی پلاک میگیری اعداد و حروف رو روی صفحه خودش نشون بده.

خوب اینکار ایده ی جالبیه یعنی در واقع میخوای بک اپلیکیشن طراحی کنی برا گوشی که کار تشخیص پلاک خودرو رو انجام بده من این روش رو اپیشنهاد میکنم:

-اول باید نوع سیستم عاملی که موبایل داره رو تعیین کنی، چون برنامه نویسی برای اندروید خیلی متفاوته.
- میتونی از جاوا به عنوان رابط با سخت افزارت استفاده کنی.برنامه های جاوا روی بیشتر سیستم عاملها و همه اسمارت فونها قابلیت نصب داره.
- برای پردازنده باید بگم که دوره پردازنده گوشی رو خط بکش.باید کاری کنی که فقط اطلاعات و نتیجه ی کار رو گوشی نمایش داده بشه
- به عنوان پردازنده تو میتونی از یک برد مجزا استفاده کرد. بردی که ورودی رو از دوربین گوشی بگیره پردازش رو انجام بده و بعد خروجی رو دوباره به رابط گرافیکی طراحی شده توسط جاوا بفرسته که رو گوشی نصب شده.
- برد پردازنده ات خیلی راحت میشه طراحی کرد و به صورت یک پک زیبا به وسیله درگاه USB که اکثر گوشیها دارند به گوشی متصل بشه.
-اما پردازنده FPGA اتخاب مناسبیه فقط در صورتی که بتونی برد "اکتل" پیدا کنی که تو ایران نیست.
- بهتر از بردهای DSP استفاده کنی که تو ایران هم موجوده و به راحتی میتونی متخصص کار با اونو پیدا کنی یا کار باهاش رو یاد بگیری.

(۰۳-آبان-۱۳۹۱, ۱۶:۵۰:۵۱)mroo نوشته است: [ -> ]ممنونووووووووووووووونم از راهنماییتون شما بین c# و متلب کدومو پیشنهاد میکنید

مطمئا اگر C# بلد باشد بهتر از متلبه چون راحتر به سخت افزار متصل میشه. اصلا کلا c# به رابط برنامه نویسی برای سخت افزار مشهوره.

(۰۲-آبان-۱۳۹۱, ۱۲:۴۹:۴۹)arya_sad88 نوشته است: [ -> ]سلام با تشکر
من چیز زیادی از پردازش نمیدونم ولی یه سوال دارم: ایا میشه متلب رو روی یک پردازنده بالا بیاریم که یه برد مجزا داشته باشیم که بشه بدون نیاز به اتصال به کامپیوتر خودش درجا حروف پلاک رو تشخیص بده؟
یعنی فرض کنید یه موبایل داریم که به صورت فیزیکی وقتی جلوی پلاک میگیری اعداد و حروف رو روی صفحه خودش نشون بده.

سری هم به این سایت میتونی بزنی که میشه بردهای آموزشی DSP رو تهیه کرد:
http://www.dspcore.ir/
این فلوچارت مربوط به همین تاپیک هست که!!!!
مراحل انجام تشخیص پلاک از طریق شبکه های عصبی

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


کد php:
%khandane karakterha.........mini database1...................

for 
i=1:1
 
for j=1:8
 temp
=imread(['d:\DataBase\' num2str(j) '.jpg']);
 temp=im2bw(temp);
 nf1=temp.*cx{1,i};
 nf2=sum(sum(nf1));
 nf(j)=nf2/(sum(sum(temp)));
 mx=max(nf(j));
 
 
 if nf(1,1)== mx
 disp(1);
 else
 if nf(1,2)== mx
 disp(5);
 else
 if nf(1,3)== mx
 disp('
j');
 else
 if nf(1,4)== mx
 disp(6);
 else
 if nf(1,5)== mx
 disp(3);
 else
 if nf(1,6)== mx
 disp(1);
 else
 if nf(1,7)== mx
 disp(7);
 else
 if nf(1,8)== mx
 disp(2);
 
 
 end
 end
 end
 end
 end
 end
 
 end
 
 end
 
 
 end
 
end 
(۰۲-آذر-۱۳۹۱, ۱۵:۳۷:۲۸)HOSSEINonline7 نوشته است: [ -> ]سلام دوستان این کدهایی که گذاشتم برای جدا سازی کاراکتر ها هست و لطفا یک توضیحی برای من بدید این قسمت را نفهمیدم چکار کرده ؟


کد php:
%khandane karakterha.........mini database1...................

for 
i=1:1
 
for j=1:8
 temp
=imread(['d:\DataBase\' num2str(j) '.jpg']);
 temp=im2bw(temp);
 nf1=temp.*cx{1,i};
 nf2=sum(sum(nf1));
 nf(j)=nf2/(sum(sum(temp)));
 mx=max(nf(j));
 
 
 if nf(1,1)== mx
 disp(1);
 else
 if nf(1,2)== mx
 disp(5);
 else
 if nf(1,3)== mx
 disp('
j');
 else
 if nf(1,4)== mx
 disp(6);
 else
 if nf(1,5)== mx
 disp(3);
 else
 if nf(1,6)== mx
 disp(1);
 else
 if nf(1,7)== mx
 disp(7);
 else
 if nf(1,8)== mx
 disp(2);
 
 
 end
 end
 end
 end
 end
 end
 
 end
 
 end
 
 
 end
 
end 

این کدها برای خوندن کاراکترها هستش بر اساس فرموا نرمال فاکتور "nf" هر کدونم از کاراکترها رو که استخراج کردیم و یکجا ذخیره کردیم رو با دیتا بیس مقایسه میکنیم و هر کدوم از دیتا بیس نرمال فاکتور بیشتری داشت همون کاراکتر انتخاب میشه و اسمی که دیتا بیس با اون ذخیره شده رو میخونه و به عنوان کد خونده شده در خروجی نمایش میده.

این قسمت در واقع خیلی قوی نوشته نشده، من به علت کمبود وقت برای ارائه پروژه این قسمت رو خلاصه نویسی کردم که کارم سریعتر نتیجه بده.شما میتونید این قسمت رو با دیتا بیس قوی تری انجام بدید و با نوشتن یک حلقه for دیگه کاراکترها رو با دیتا بیس بیشتری مقایسه کنید. من اینجا قبلا چون دیتا بیس نداشتم، فقط از کاراکترهای که خودم استخراج کردم دوباره به عنوان دیتا بیس استفاده کردم.


موفق باشید

Rolleyes
در رابطه با نرمال فاکتو که دوستان زیاد سوال میپرسند:

نرمال فاکتور مقدار همپوشانی دو کاراکتر رو بدست میاره، فرض کنید شما یک عکس با دایره ای سیاه بخ شعاع 2 و زمینه سفید، عکس دیگر با دایره ای به شعاع 2.5 و زمینه سفید و عکس دیگر با دایره ای به شعاع1 و زمیته سفید دارید، اگر تصویر اول رو روی هر کدوم از دو تصویر دیگر قرار دهید مطمئنا با تصویر با شعاع 2.5 همپوشانی بیشتری دارد، پس دایره 2 به دایره 2.5 خیلی شبیه تره تا به دایره 1. برا کاراکتر ها هم دقیقا به همین شکل فقط به جای دایره کاراکتر پلاک قرار میگیره،
در حلقه for من هر کاراکتر را با بقیهی دیتا بیس مقایسه کردم هر کدام بیترسن مقدار نرمال فاکتور را داشت، شماره عکس (عنوان عکس) خونده میشه و به عنوان خوانش پلاک در خروجی ظاهر میشه.
(۱۱-آذر-۱۳۹۱, ۱۴:۲۵:۰۲)طار نوشته است: [ -> ]
(۰۲-آذر-۱۳۹۱, ۱۵:۳۷:۲۸)HOSSEINonline7 نوشته است: [ -> ]سلام دوستان این کدهایی که گذاشتم برای جدا سازی کاراکتر ها هست و لطفا یک توضیحی برای من بدید این قسمت را نفهمیدم چکار کرده ؟


کد php:
%khandane karakterha.........mini database1...................

for 
i=1:1
 
for j=1:8
 temp
=imread(['d:\DataBase\' num2str(j) '.jpg']);
 temp=im2bw(temp);
 nf1=temp.*cx{1,i};
 nf2=sum(sum(nf1));
 nf(j)=nf2/(sum(sum(temp)));
 mx=max(nf(j));
 
 
 if nf(1,1)== mx
 disp(1);
 else
 if nf(1,2)== mx
 disp(5);
 else
 if nf(1,3)== mx
 disp('
j');
 else
 if nf(1,4)== mx
 disp(6);
 else
 if nf(1,5)== mx
 disp(3);
 else
 if nf(1,6)== mx
 disp(1);
 else
 if nf(1,7)== mx
 disp(7);
 else
 if nf(1,8)== mx
 disp(2);
 
 
 end
 end
 end
 end
 end
 end
 
 end
 
 end
 
 
 end
 
end 

این کدها برای خوندن کاراکترها هستش بر اساس فرموا نرمال فاکتور "nf" هر کدونم از کاراکترها رو که استخراج کردیم و یکجا ذخیره کردیم رو با دیتا بیس مقایسه میکنیم و هر کدوم از دیتا بیس نرمال فاکتور بیشتری داشت همون کاراکتر انتخاب میشه و اسمی که دیتا بیس با اون ذخیره شده رو میخونه و به عنوان کد خونده شده در خروجی نمایش میده.

این قسمت در واقع خیلی قوی نوشته نشده، من به علت کمبود وقت برای ارائه پروژه این قسمت رو خلاصه نویسی کردم که کارم سریعتر نتیجه بده.شما میتونید این قسمت رو با دیتا بیس قوی تری انجام بدید و با نوشتن یک حلقه for دیگه کاراکترها رو با دیتا بیس بیشتری مقایسه کنید. من اینجا قبلا چون دیتا بیس نداشتم، فقط از کاراکترهای که خودم استخراج کردم دوباره به عنوان دیتا بیس استفاده کردم.


موفق باشید

Rolleyes

دوستان کسی این حلقه for نوشته ؟
(۰۷-بهمن-۱۳۹۱, ۱۷:۵۹:۱۲)یاشا رضایی نسب نوشته است: [ -> ]دوستان کسی این حلقه for نوشته ؟

کد اصلی در پست اول هستش
و برنامه چک شده و اجرا میشه
سلام؛
اگر از دوستان کسی این پروژه رو با #C انجام داده و علاقه مند به همکاری هست به بنده اطلاع بده.
موفق باشید.
با عرض سلام
كسي نمي دونه چطوري بايد ديتا بيسشو اتصال بديم
تا 7 مرحله عكسو پردازش ميكنه اما بعد از اون خطا ميده(بعد از قسمت تراز كردن پلاك)
خطا هاي زير:
1-
[تصویر:  c2595_P1.bmp]
2-
[تصویر:  y4262_p2.bmp]
3-
[تصویر:  i266_p3.bmp]
4-
[تصویر:  l151_p4.bmp]
سلام . خوبید
منم تست کردم اصلا کار نمیکنه . خیلی نیاز به این پروژه دارم . خواهش میکنم کمکم کنید
صفحه‌ها: 1 2 3 4 5 6