Агуулгын хүснэгт:

Компьютерийн алсын харааг ашиглан од таних (OpenCV): 11 алхам (зурагтай)
Компьютерийн алсын харааг ашиглан од таних (OpenCV): 11 алхам (зурагтай)

Видео: Компьютерийн алсын харааг ашиглан од таних (OpenCV): 11 алхам (зурагтай)

Видео: Компьютерийн алсын харааг ашиглан од таних (OpenCV): 11 алхам (зурагтай)
Видео: Computer Vision with Python! Grayscaling Images 2024, Арваннэгдүгээр
Anonim
Компьютерийн алсын харааг ашиглан од таних (OpenCV)
Компьютерийн алсын харааг ашиглан од таних (OpenCV)

Энэхүү зааварчилгаа нь зурган дээрх одны хэв маягийг автоматаар танихын тулд компьютерийн алсын хараатай програмыг хэрхэн яаж хийхийг танд хэлэх болно. Энэ арга нь OpenCV (Open Source Computer Vision) номын санг ашиглан тодорхой одны хэв маягийг танихад ашиглаж болох HAAR каскадын багцыг бий болгодог. Энэхүү гарын авлага нь одны хэв маягийг таних агуулгатай хэдий ч миний тайлбарласан OpenCV процессыг бусад програмуудад бас ашиглаж болох тул энэ нь ашигтай байх болно гэж найдаж байна!

Төслийг энэ видеонд нэгтгэн харуулав.

Би яагаад үүнийг сургамжтай гэж бичсэн юм бэ?

  1. Миний боловсруулж буй одны хэв маягийг тодорхойлох арга нь дурангийн чиг баримжаа, зургийн автомат ангилал, эсвэл эцсийн эхэн дэх одны мэдрэгч эсвэл сонирхогчийн CubeSat гэх мэт олон төрлийн одон орон судлалын төслүүдэд хэрэглэгдэх боломжтой гэж би бодож байна.
  2. OpenCV -ийн маш олон сайн зааварчилгаа энд байдаг, гэхдээ тийм ч учраас би үүнийг анх сурахад маш хэцүү үйл явц гэж үзсэн тул энэхүү гарын авлага нь HAAR ангилагчийг OpenCV -д сургах гэж буй бусад хүмүүст сайн лавлах болно гэж найдаж байна. одон орон магадгүй!).
  3. Би өөрөө бэлтгэгдсэн програмист хүн биш болохоор энэ төсөл миний ойлголтыг үнэхээр түлхсэн. Энэхүү бусад зааварчилгаа, илүү туршлагатай үйлдвэрлэгчдийг бичснээр энэ хуудсан дээрх сэтгэгдлээр GitHub -д хувь нэмэр оруулах болно гэж найдаж байна.
  4. Сонирхогчдын одон орон, чиг баримжаа олгох арга барил нь миний сонирхлыг ихэд татдаг тул миний дурдсан дурангаар хийх Arduino Star-Finder програмыг үзнэ үү.

Энэхүү зааварчилгааны хавтасны зураг нь миний зохион бүтээхэд оролцсон 3U CubeSat загвартай. Компьютерийн харааны од таних системийн анхны хэрэглээ нь Raspberry Pi V2 камер ашиглан сонирхогчдын хийсэн CubeSats-ийн чиглүүлэгч мэдрэгч байх ёстой байсан тул би үүнийг зааварлахын тулд үүнийг ашигласан болно. Компьютерийн харааны од таних бусад олон боломжит програмууд байдаг гэдэгт би итгэдэг, гэхдээ энэ бол хамгийн гайхалтай нь гэж би бодож байна!

Жижиг толь бичиг:

Компьютерийн алсын харааг сурах нь мэргэшсэн нэр томъёог ашигласнаар удаашруулдаг тул бид энд заримыг нь тайлбарлах болно.

Cascade - Тодорхой зорилтот объектыг тодорхойлохоор бэлтгэгдсэн ангилагч.

Fiducial Marker - Зураг дээр харааны лавлах цэгийг нэмж буй тэмдэглэгээ.

HAAR - Хаартай төстэй шинж чанарууд нь ангилагчийн сургалтанд ашигладаг дүрсний онцлог шинж чанар юм.

OpenCV - Нээлттэй эхийн компьютерийн хараа, компьютерийн харааны хэрэгслүүдийн номын сан.

Stellarium - Нээлттэй эхийн одон орон судлалын програм хангамж.

Алхам 1: Шаардлага

OpenCV бол Линукс дээр суурилсан номын сан тул Windows дээр сайн ажиллуулах боломжтой гэж үзэж байгаа ч гэсэн үүнийг Linux орчинд ажиллуулах нь илүү хялбар байх болно (үүнийг надаас аваад олон хоногийн турш бүрэн ажиллуулахыг хичээгээрэй. Windows!). Туршилтын хувьд би Raspberry Pi 3B+дээр OpenCV програмыг татаж аваад ажиллуулсан нь амжилттай болсон боловч ангилагчийн сургалт нь маш их RAM шаарддаг процесс тул хэрэв та үүнийг ямар ч хурдаар хийхийг хүсч байвал Linux виртуал сервер хөлслөхийг зөвлөж байна. (энэ нь үнэхээр хямдхан байж магадгүй юм) хэдэн өдөр/долоо хоног/сарын турш ашиглах ба үүнийг ангилагчийн сургалтыг явуулах тусгай орчин болгон ашиглаарай. Та Putty гэх мэт SSH клиент ашиглан Windows PC -ээс серверийг удирдах боломжтой болно. Каскадуудыг VPS ашиглан сургасны дараа тэдгээрийг Windows компьютер дээрээ татаж авах боломжтой бөгөөд Python -ийг Windows орчинд дүрс таних програмыг ажиллуулахад ашиглаж болно.

Linux виртуал сервер:

HAAR каскадын сургалтын процессыг гүйцэтгэхийн тулд Linux виртуал сервер (VPS) хэрэгтэй. Эхэндээ би 8GB RAM, Ubuntu 16.04.6 (LTS) x64 бүхий сервер хөлсөлж, дараа нь каскад сургах хурдыг хоёр дахин нэмэгдүүлэхийн тулд танд хамгийн бага нь л хэрэгтэй болно

Програм хангамж:

  • Stellarium - энэ бол чөлөөтэй ашиглах боломжтой виртуал гаригийн одон орон судлалын програм хангамж юм. Үүнийг туршилтанд ашиглахын тулд дууриамал оддын дүрсийг цуглуулахад ашиглах болно.
  • Putty - Энэ бол VPS -ийг тушаалын мөрөөр хянахад ашигладаг SSH клиент юм.
  • WinSCP - энэ нь Windows PC -ээс файл дамжуулахад хэрэглэгддэг.

Алхам 2: VPS тохиргоо

VPS -ийг ажиллуулахын тулд жижиг тохиргооны процесс байдаг. Эхний удаад танд бага зэрэг хугацаа шаардагдах болно, гэхдээ хэрэв та алхамуудыг сайтар дагаж мөрдвөл тийм ч төвөгтэй биш байх болно. Энэ заавар нь миний хувьд маш сайн лавлах байсан, энэ зааварчилгаагаар ажиллаж байхдаа үүнийг бас уншихыг танд зөвлөж байна. Энэ нь үсгийг дагаж мөрдөх шаардлагатай линукс командуудын онцлог шинж чанаруудыг мөр бүрээр нь хамардаг.

Ойролцоогоор энэ үйл явцад дараахь зүйлс орно.

  1. Ubuntu -ийн зөв хувилбартай Linux сервер үүсгэх.
  2. Серверийг шинэчлэх, шинэчлэх.
  3. OpenCV -ийг суулгасан ажлын талбарын лавлах үүсгэх.
  4. Зарим чухал зүйлийг суулгах, тухайлбал хөрвүүлэгч, янз бүрийн номын сан, Python холболт.

Энэ үе шат дууссаны дараа та сургалтын үйл явцад бэлдэж эхлэхэд бэлэн байна.

Алхам 3: Процесс

HAAR каскадыг ашиглан компьютерийн алсын хараатай холбоотой бүх үйл явц нь эхэндээ төөрөгдөл үүсгэдэг тул энэ алхам нь логикийг арай илүү нарийвчлан тайлбарласан болно.

Үндсэн процесс

  1. Сонирхолтой объектыг агуулаагүй хэдэн мянган зургаас бүрдэх сөрөг зургийн мэдээллийн сан байдаг. Үүнийг VPS дээр байршуулах шаардлагатай болно.
  2. Сонирхсон объектыг агуулсан ганц эерэг дүр төрхийг бий болгодог. Үүнийг мөн VPS дээр байршуулах шаардлагатай болно.
  3. Ганц эерэг дүрсийг сонгосон параметрийн дагуу гажуудуулж, гажуудуулж, эргүүлэх гэх мэт сөрөг зургуудыг сонгож авсан болно. Энэ бол нэг зургаар том эерэг өгөгдлийн багц үүсгэх хиймэл арга юм. (Муурыг таних гэх мэт бусад бодит хэрэглээний хувьд та хэдэн мянган муурны зургийг ашиглаж болно, гэхдээ хэрэв танд ийм том эерэг зураг байхгүй бол энэ арга нь үргэлж тохиромжтой байдаггүй. Энд ашигладаг хиймэл арга. үр дүн багатай байх болно, гэхдээ энэ нь ийм тохиолдлын цорын ганц сонголт юм).
  4. Сургалтын үйл явц явагддаг бөгөөд энэ нь үе шаттайгаар явагддаг. Үе шат бүр нь зураг дээрх HAAR төрлийн өөр өөр шинж чанаруудыг тодорхойлохын тулд каскадыг сургах болно. Үе шат бүрийг дуусгахад асар их хугацаа шаардагддаг бөгөөд ангилагчийн үр нөлөө нь цаг тутамд нэмэгддэг.
  5. Нэг бэлтгэгдсэн каскад нь нэг зорилтот объектыг хайх боломжтой болно. Хэрэв та хэд хэдэн өвөрмөц объектыг танихыг хүсч байвал тус бүрт зориулан бэлтгэгдсэн каскад хэрэгтэй болно. Энэ тохиолдолд би тэнгэрийн бөмбөрцгийн хойд хагасыг хамарсан иж бүрдэл бий болгохын тулд өвөрмөц оддын паттер хийх 50 орчим төрлийн каскадыг сургасан.
  6. Эцэст нь, каскад бүрийг оролтын зургийн эсрэг ажиллуулдаг илрүүлэх програмыг ашигладаг. Каскад нь оруулсан дүрс дотор өгөгдсөн зорилтот объектыг хайж олох болно.
  7. Хэрэв амжилттай бол зорилтот объектыг оролтын зурган дотроос тодорхойлно.

nb хэрэв хиймэл дагуулын чиглэлийн контекстэд ашиглавал зураг дээрх камер ашиглан зураг авах болно. Энэ зурган дээрх хамгийн тод оддыг тодруулж, эдгээр байрлалд тэмдэглэгээг давхарласан болно. Дараа нь энэ зургийг бэлтгэсэн каскадуудын багцад танилцуулсан бөгөөд энэ нь оролтын дүрс нь зорилтот объектуудын аль нэгийг агуулсан эсэхийг шалгах болно. Хэрэв жинхэнэ эерэг илэрсэн бол хиймэл дагуулын биетийн тэнхлэгүүдтэй харьцуулахад мэдэгдэж буй одны өнцгийн байрлалыг нээнэ.

Алхам 4: Сөрөг ба эерэг

Сөрөг

Каскад сургалтын жинхэнэ гол тал бол сөрөг зургуудыг аль болох их хэмжээгээр цуглуулах явдал юм. Бид хэдэн мянган, хамгийн тохиромжтой нь хэдэн арван мянган дүрсийн тухай ярьж байна. Тэдэнд юу агуулагдаж байгаа нь хамаагүй, зорилго нь олон төрлийн харааны мэдээлэл өгөх явдал юм. Ангилагчийн сургалтын хавтас нь миний эмхэтгэсэн янз бүрийн сөрөг зургийн өгөгдлийн багцыг агуулдаг. Эхэндээ эдгээр нь зөвхөн Stellarium -аас цуглуулсан оддын хээрийн дүрслэлээс бүрддэг байсан боловч хожим нь би өгөгдлийн сангаа санамсаргүй байдлаар олшруулсан (тийм ээ, миний баярын зургуудыг оруулаад …). Хамгийн том мэдээллийн санд 9000 орчим зураг багтсан бөгөөд энэ нь миний одоог хүртэл үүсгэсэн хамгийн том зураг байсан юм. Үүнийг ашигласнаар та өөрөө эмхэтгэх болно.

Эерэг

Эерэг дүр төрх (энэ бол каскадыг танихад сургах болно). Питон програм нь зурган дээрх хамгийн тод одыг тодорхойлж, эдгээр оддын байрлал дээр тэмдэглэгээг (энэ зааврын дараа тайлбарласан болно) давхарлана. Дараа нь энэ зургийг 50x50 пиксел болгон багасгасан. Энэ нь бага боловч каскад хийхэд шаардагдах сургалтын хугацаа энэ хэмжээ нэмэгдэх тусам эрс нэмэгдэх тул чанар, цаг хугацааны хоорондох сайн буулт болно.

Алхам 5: Оддын хяналт

Оддын хяналт
Оддын хяналт
Оддын хяналт
Оддын хяналт

GitHub репозиторийн Stellarium скрипт фолдер нь миний бичсэн Stellarium -ийн хэрэглээг хянахын тулд бичсэн гурван програмыг агуулдаг. Тэдгээрийг ашиглахын тулд Stellarium суулгах хавтасныхаа скрипт хавтсанд байрлуулна уу. Тэдгээрийг ажиллуулахын тулд та скриптүүдийн цонхыг Stellarium цэснээс нээж болно, эсвэл скриптүүдийн хавтсан дээрх програм дээр хоёр удаа дарахад Stellarium -ийг нээж, сонгосон програмыг даруй ажиллуулна.

тезис_4 ба тезис_5 нь хойд ба өмнөд тус бүрийн тэнгэрийн хагас бөмбөрцөг тус бүр 2000 орчим зургийг авчээ. Эдгээрийг сөрөг зургийн мэдээллийн санг бүрдүүлэх, эерэг дүр төрхийг эсрэг сургахад ашигладаг байсан. Хойд ба өмнөд хоёрын хоорондох ялгаа нь бөмбөрцгийн хойд бөмбөрцгийн оддын хэв маягийг тэнгэрийн бөмбөрцгийн өмнөд хагас бөмбөрцгийн зургийн өгөгдлийн эсрэг сургах замаар зорилтот (эерэг) одны загварыг сөрөг өгөгдөлд оруулахгүй байх энгийн арга байв. (Хэрэв эерэг дүрс нь сөрөг зургийн мэдээллийн санд байгаа бол энэ нь ангилагчийн чанарт нөлөөлнө).

thesis_setup нь бас ашигтай байдаг - энэ нь Stellarium -ийг сансраас харах дүр төрхийг дүрслэхэд ашигладаг зургуудыг авахад тохиромжтой болгож тохируулдаг. Энэ нь зураг авахыг хүссэн үедээ хадгалахын тулд цэс, сүлжээний шугам, шошго гэх мэтийг автоматаар нуух гэх мэт үйлдлийг хийдэг.

Алхам 6: Пуужин хүн

Пуужин хүн
Пуужин хүн

Миний сургасан анхны каскадууд ямар ч одны хэв маягийг зөв тодорхойлж чадаагүй юм. Тэд маш найдваргүй байсан бөгөөд хуурамч эерэг байдалд маш их өртдөг байв. Миний таамаглал бол Стеллариумын оддын талбарын зургууд (үндсэндээ хар дэвсгэр дээрх цагаан цэгүүд) нь ангилагчийг амжилттай сургахад HAAR төрлийн онцлог шинж чанарыг агуулсан хангалттай харааны мэдээлэл агуулаагүй болно. Шөнө орой болсон гэж бодож байна, гэхдээ би оддын талбар дээрх тод од бүрийн байрлал дээр жижиг өнгөц зургийг автоматаар байрлуулах програм бичих санааг туршиж үзэхээр шийдлээ.

Элтон

Энэ бол тэнэг туршилт байсан боловч тод оддын байрлал бүрт Элтон Жоны нүүрний жижиг зургийг нэмж, ангилагчийг энэхүү эерэг дүрсний эсрэг сургаж, дараа нь каскадыг анхны дүрсний дагуу ажиллуулснаар дүрсийг зөв олох нь хамаагүй илүү үр дүнтэй байв. зөв загвар. Би ямар нэгэн зүйлд дуртай гэдгээ мэдэж байсан!

Алхам 7: Фидуциал маркерууд

Үнэнч маркерууд
Үнэнч маркерууд

Хэдийгээр "Элтонс" онолыг баталсан ч надад бүтэн эргэлтийн тэгш хэмтэй тэмдэглэгээ хэрэгтэй байсан бөгөөд ингэснээр одны загварыг ямар ч чиглэлд танилцуулсан хамаагүй адилхан харагдах болно. Би янз бүрийн тэмдэглэгээний төрлийг туршиж үзээд, баруун доод буланд хар, цагаан цагираг ялгаатай нь хамгийн үр дүнтэй болохыг олж мэдэв. GitHub репогийн эерэг хавтсанд үзүүлсэн питон програм нь тухайн зураг дээрх хамгийн тод оддыг хэрхэн ялгаж байгааг харуулдаг бөгөөд эдгээр тэмдэглэгээ нь эдгээр байрлалд автоматаар давхцдаг. Бид одооноос сургаж болох гол оддын дүрслэлийг бүтээсэн.

Алхам 8: Каскад ашиглах

Каскад ашиглах
Каскад ашиглах

Та каскадны багцыг сургасан бол зураг дээрх объектыг тодорхойлохын тулд тэдгээрийг хэрхэн ашиглахаа мэдэх хэрэгтэй!

GitHub -ийн Оддын таних фолдерыг хараарай, эндээс cascade_test19.py програмыг олох болно. Энэхүү гайхалтай нэртэй програм нь өгөгдсөн хавтаснаас олон тооны каскадуудыг авч, бүгдийг нь оролтын зургийн эсрэг ажиллуулж, хийсэн илрүүлэлтийн талаар мэдээлдэг. 'DetectMultiScale' функц нь үүний гол цөм бөгөөд илрүүлэх үйл явцыг тодорхойлох олон аргументыг шаарддаг. Эдгээрийг өөрчлөх нь каскад ангилагчийн гүйцэтгэлд чухал ач холбогдолтой бөгөөд хуурамч эерэг байдлыг хэрхэн арилгах талаар авч үзэх дараагийн алхам дээр энэ талаар илүү дэлгэрэнгүй ярилцаж болно.

Үүнийг хиймэл дагуулын чиг баримжааны системд хязгаарлах хайрцгийн төв дэх пикселийн утгыг одны тодорхойлогчийн Ra/Dec огторгуйн координаттай харьцуулж, дараа нь зургийн төвөөс өнцгийн шилжилтийг харьцуулах замаар ашиглаж болно. тэнхлэг). Эндээс линзийн гажуудлын талаархи ойлголтыг ашиглан (гномоник проекцид ойролцоогоор) хиймэл дагуулын өнцгийг ердөө хоёр эерэг таних тэмдгээс олж болно.

Алхам 9: Хуурамч эерэг зүйлийн талаар хэрхэн эерэг байх вэ

Хуурамч эерэг зүйлийн талаар хэрхэн эерэг байх вэ
Хуурамч эерэг зүйлийн талаар хэрхэн эерэг байх вэ
Хуурамч эерэг зүйлийн талаар хэрхэн эерэг байх вэ
Хуурамч эерэг зүйлийн талаар хэрхэн эерэг байх вэ

Эдгээр хоёр зураг нь каскад багцыг ижил зурагтай, гэхдээ өөр өөр параметрээр туршиж үзсэний үр дүнг харуулж байна. Мэдээжийн хэрэг, эхний зураг нь жинхэнэ таних тэмдгийг агуулсан боловч асар олон тооны хуурамч эерэг утгыг агуулдаг бол хоёр дахь зураг нь зөвхөн зөв таних тэмдгийг агуулдаг.

GitHub репогийн Star Identification фолдер доторх cascade_test19.py програм нь үр дүнг эрэмбэлэх хоёр аргыг ашигладаг. Нэгдүгээрт, detectMultiScale функцон нь Miminum ба Максимум үр дүнгийн хамгийн дээд хэмжээг тохируулдаг бөгөөд энэ нь цонхны доторх зорилтот одны ойролцоо хэмжээтэй байдаг (өгөгдсөн линз ба томруулалтын хувьд - миний дуурайсан Stellarium зургууд нь Raspberry Pi V2 Камер) нь мэдэгдэж байна. Хоёрдугаарт, код нь хамгийн том хязгаарлах хайрцагтай үр дүнг сонгох болно (өмнөх хязгаарт). Туршилтын явцад энэ нь үнэхээр эерэг байсан нь тогтоогджээ. Гуравдугаарт, хөтөлбөр нь энэхүү ID -г жинхэнэ эерэг гэж үзэхийн тулд шаардагдах хамгийн бага 'levelWeights' (үр дүнтэй "итгэл үнэмшил") -ийг тогтоодог. Энэ аргаар каскад нь зөв үр дүнг олоход үр дүнтэй байв.

Оддын талбайн зургуудаас гадна би үүнийг ширээнийхээ зургуудаар туршиж үзсэн, жишээлбэл, дэвтэр, аяга гэх мэтийг таних, хуурамч эерэг зүйлийг арилгах дадлага хийх зорилгоор каскад хийж сургасан. Дээрх аргууд нь урам зориг өгсөн бүх нөхцөлд сайн ажилладаг.

Алхам 10: Хэлэлцүүлэг

Хэлэлцүүлэг
Хэлэлцүүлэг
Хэлэлцүүлэг
Хэлэлцүүлэг
Хэлэлцүүлэг
Хэлэлцүүлэг

Сайжруулах чиглэлүүд

Энэ бол миний хувьд нарийн төвөгтэй төсөл байсан бөгөөд энэ сэдвийг ойлгоход түлхэц өгсөн юм. Төслийг тантай хуваалцах боломжтой болохын тулд энэ төслийг хэрэгжүүлэхийн тулд хэдэн сарын турш бараг бүтэн цагаар ажилласан боловч аргын гүйцэтгэлийг сайжруулахын тулд хийх олон ажил байна. Энэ нь тодорхой хязгаарлалтын хүрээнд сайн ажиллаж чаддаг. Би аль чиглэлээр нэмэлт ажил хийх шаардлагатай байгааг тодорхойлохын тулд ажилласан бөгөөд ирэх саруудад эдгээр асуудлыг шийдвэрлэхэд цаг зарцуулах болно гэж найдаж байна. Тэд:

Өнцөг - Энэ бол нарийн төвөгтэй хэсэг бөгөөд ангилагчийн үр дүн нь эргэлтгүй өөрчлөгдөх ёстой гэсэн санаа юм, өөрөөр хэлбэл зорилтот одны зургийг агуулсан өнцгийг харуулахаас үл хамааран зорилтот одны загварыг найдвартай тодорхойлох ёстой. Нэг чиглэлийн оролтын дүрсийг ашиглан бэлтгэгдсэн каскад нь тухайн зургийг санамсаргүй байдлаар тодорхойлох боломжгүй тул оролтын өнцгийн хүрээг хүлээн авах каскадуудыг сургахын тулд эерэг дүрсний өнцгийн ялгааг сургалтын процесст оруулах ёстой. Каскад сургалтын командын 'maxzangle' параметр нь радиан дахь аргументийг авч үздэг бөгөөд энэ нь оруулсан эерэг зураг дээр оруулсан эерэг зураг дээр дарагдах өнцгийн хязгаарыг хянадаг тул эерэг зургийн багц нь олон чиглэлийг агуулсан болно. эерэг дүр төрх. Гэсэн хэдий ч энэхүү дээд тойрог нь нэмэгдэх тусам каскадын хүлээн авах харьцаа (өргөн утгаараа чанар) эрс буурах болно. Энэхүү шийдэл нь том чиглэлийн тархалтыг багтаасан сайн чанарын каскад ангилагчийг бий болгохын тулд миний ашиглаж байснаас хамаагүй их хэмжээний сөрөг зургийн мэдээллийн санг ашиглан каскад сургах явдал гэж би бодож байна.

Өөр нэг боломжит шийдэл бол тодорхой зорилтот зориулалттай хэд хэдэн каскадыг сургах явдал юм. Ингэснээр каскад бүрийн чанарыг өндөр түвшинд хадгалах боломжтой боловч нөгөө талаас энэ нь илүү их каскад үүсгэх бөгөөд ингэснээр тодорхойлох үйл явц удаашрах болно.

'DetectMultiScale' функцээр хангагдсан 'levelWeight' параметр нь хийсэн илрүүлэлтийн итгэл үнэмшилтэй төстэй юм. Үүнийг судалж үзээд, аль ч чиглэлд зургийн чиг баримжаа нэмэгдэх тусам эерэг таних итгэл хэрхэн буурч байгааг харуулсан бөгөөд энэ нь сул тал гэсэн бодлыг баталж байна.

Пикселийн байршил - Хамгийн энгийн боловч бас нэг асуудалтай зүйл бол пикселийн байршлыг дараах хоёр зургаар дүрсэлсэн бөгөөд одны дүрсийг томсгосон байдлаар харуулсан бөгөөд ингэснээр хоёр одны пикселийг тодорхой харж болно. Хөтөлбөрт ашигласан элэгдлийн процесс нь дүрснээс хамгийн тод одноос бусад бүх зүйлийг цэвэрлэхэд эхний одод үлдэх бөгөөд хоёр дахь нь ижил гэрэлтүүлэгтэй байсан ч хаях болно. Үүний шалтгаан нь эхний од пиксел дээр төвлөрсөн байхад хоёр дахь нь тийм биш юм. Элэгдлийн функц нь бүлгийн төв пикселийн эргэн тойрон дахь пикселийн төвлөрсөн цагиргуудыг хуулдаг бөгөөд ингэснээр эхний од нь төвийн пикселийг элэгдлийн функцийг даван туулах боловч хоёр дахь од нь дүрснээс бүрэн хасагдах болно. Тиймээс үнэнч тэмдгийг зөвхөн эхний од дээр байрлуулах бөгөөд хоёр дахь нь биш юм. Энэ нь тухайн одны талбар дахь ямар тод одод маркер хүлээн авахтай холбоотой зөрчилдөөн үүсгэдэг (иймээс бэлтгэгдсэн ангилагчидтай харьцуулах болно), тиймээс зөв эерэг ажиглалт хийх боломжгүй юм.

Алхам 11: Сүүлчийн үг

Сүүлчийн үг
Сүүлчийн үг

Миний зааврыг уншсанд баярлалаа, энэ төсөл танд сонирхолтой санагдсан гэж найдаж байна. Үүн дээр ажиллах нь маш сонирхолтой үйл явц байсан, энэ үзэл баримтлал дээр ажиллаж эхэлснээс хойш жил гаруй хугацаа өнгөрч байгаа бөгөөд үр дүн нь өдийг хүртэл урам зориг өгч байна. Миний уншсан уран зохиолоос харахад энэ бол маш анхны ойлголт бөгөөд илүү их хөгжүүлэлт хийснээр сонирхогчдын одон орон судлалд зориулагдсан болно.

Энэ төсөл нь миний хувьд маш том сургалтын муруй байсан тул програмчлалын туршлагатай зарим уншигчид GitHub хуудсаар дамжуулан төслийг үргэлжлүүлэхэд хувь нэмрээ оруулах болно гэж найдаж байна, бид энэ нээлттэй эхийн хэрэгслийг үргэлжлүүлэн хөгжүүлж чадна. Таны сэтгэгдлийг уншихыг тэсэн ядан хүлээж байна, гэхдээ хэтэрхий хэцүү асуулт бүү асуугаарай!

Сансрын сорилт
Сансрын сорилт
Сансрын сорилт
Сансрын сорилт

Сансрын сорилтын тэмцээнд хоёрдугаар байр эзэлсэн

Зөвлөмж болгож буй: