Mündəricat:

Kompüter Görmə (OpenCV) istifadə edərək ulduz tanıma: 11 addım (şəkillərlə)
Kompüter Görmə (OpenCV) istifadə edərək ulduz tanıma: 11 addım (şəkillərlə)

Video: Kompüter Görmə (OpenCV) istifadə edərək ulduz tanıma: 11 addım (şəkillərlə)

Video: Kompüter Görmə (OpenCV) istifadə edərək ulduz tanıma: 11 addım (şəkillərlə)
Video: Kompüterin parametrlərinə necə baxmaq olar? (DxDiag) | Kompüter Dərsləri | Dərs #04 2024, Noyabr
Anonim
Kompüter Görmə (OpenCV) istifadə edərək Ulduz Tanıma
Kompüter Görmə (OpenCV) istifadə edərək Ulduz Tanıma

Bu təlimat, şəkildəki ulduz nümunələrini avtomatik olaraq müəyyən etmək üçün kompüter görmə proqramının necə yaradılacağını sizə izah edəcək. Metod, xüsusi ulduz nümunələrini tanımaq üçün istifadə edilə bilən bir sıra HAAR kaskadları yaratmaq üçün OpenCV (Açıq Mənbə Kompüter Görmə) kitabxanasından istifadə edir. Bu təlimat ulduz nümunəsinin tanınması kontekstində olsa da, təsvir etdiyim OpenCV prosesi digər tətbiqlərə də tətbiq oluna bilər - buna görə inşallah faydalı olar!

Layihə bu videoda ümumiləşdirilmişdir:

Niyə bunu öyrədici yazdım?

  1. İnkişaf etdirdiyim ulduz naxışını müəyyənləşdirmə metodu, istər teleskop oriyentasiyası, istər avtomatik görüntü təsnifatı, istərsə də son nəticədə açıq mənbədəki ulduz sensoru və ya həvəskar CubeSat olsun, bir çox həvəskar astronomiya layihəsinə tətbiq olunma potensialına sahib olduğuna inanıram.
  2. Burada çox yaxşı OpenCV təlimatları var, amma buna baxmayaraq əvvəlcə öyrənməyi çox çətin bir proses hesab etdim, buna görə də ümid edirəm ki, bu təlimat OpenCV üçün HAAR təsnifatçılarını öyrətmək istəyən digər insanlar üçün yaxşı bir istinad olacaqdır (mütləq etmək lazım deyil) bəlkə astronomiya!).
  3. Mən özüm təlim keçmiş bir proqramçı deyiləm, buna görə də bu layihə həqiqətən də anlayışımı itələdi. Ümid edirik ki, bu Təlimatlandırıcı digər, daha təcrübəli istehsalçıları bu konsepsiya üzərində çalışmaqdan və bu səhifədəki şərhlər vasitəsilə GitHub -a və bu təlimatlandırmaya töhfə verməkdən ilham alacaqlar.
  4. Həvəskar astronomiya və oriyentasiya metodları mənim böyük marağımdır, əvvəlki təlimatımda Arduino Star-Finder Teleskopları ilə tanış olun.

Bu Təlimat kitabının örtük fotoşəkili, dizaynında iştirak etdiyim 3U CubeSat dizaynıdır. Kompüter görmə ulduz tanıma sisteminin orijinal tətbiqi, Raspberry Pi V2 Kamera istifadə edərək, həvəskar istehsalı olan CubeSats üçün oriyentasiya sensoru olduğu üçün bu təlimatı izah etmək üçün istifadə etdim. İnanıram ki, kompüter görmə ulduzunun tanınmasının bir çox başqa potensial tətbiqi var, amma düşünürəm ki, bu, ən maraqlısıdır!

Kiçik bir lüğət:

Kompüterin görmə qabiliyyətini öyrənmək, istifadə olunan mütəxəssis ifadələrinin miqdarı ilə daha yavaş olur, buna görə burada bizim üçün bəzilərini təyin edəcəyəm:

Kaskad - Xüsusi bir hədəf obyektini müəyyən etmək üçün öyrədilmiş bir təsnifatçı.

Fiducial Marker - Bir görüntüyə vizual istinad nöqtəsi əlavə edən bir marker.

HAAR - Haar kimi xüsusiyyətlər, təsnifatçı təhsili üçün istifadə olunan bir görüntü xüsusiyyətidir.

OpenCV - Açıq Mənbə Kompüter Görmə, kompüter görmə vasitələri kitabxanası.

Stellarium - Açıq Mənbə astronomiya proqramı.

Addım 1: Tələblər

OpenCV Linux əsaslı bir kitabxanadır, buna görə də onu Windows -da yaxşı idarə etmək mümkün olsa da, Linux mühitində işlədərkən daha asan vaxt keçirəcəksiniz (bunu əlimdən alın və tam işləməsi üçün çox günlər alın. Windows!). Təcrübə olaraq Raspberry Pi 3B+-da OpenCV yüklədim və uğurla başa vurdum, təsnifatçı təhsili çox RAM tələb edən bir proses olsa da, hər hansı bir sürətlə etmək istəyirsinizsə, tövsiyə olunan marşrut Linux Virtual Serverini işə götürməkdir. (əslində təəccüblü dərəcədə ucuz ola bilər) bir neçə gün/həftə/ay ərzində və bunu təsnifatçı təliminin keçiriləcəyi xüsusi bir mühit olaraq istifadə edin. Putty kimi bir SSH müştəri istifadə edərək serveri Windows PC -dən idarə edə biləcəksiniz. Kaskadlar VPS istifadə edərək öyrədildikdən sonra Windows PC -yə yüklənə bilər və Python, Windows mühitində görüntü tanıma proqramını işə salmaq üçün istifadə edilə bilər.

Linux Virtual Server:

HAAR kaskad təlim proseslərini yerinə yetirmək üçün Linux Virtual Server (VPS) lazımdır. Əvvəlcə 8 GB RAM və Ubuntu 16.04.6 (LTS) x64, daha sonra isə kaskad hazırlaya biləcəyim dərəcəni ikiqat artıran bir server işə götürdüm

Proqram təminatı:

  • Stellarium - bu sərbəst şəkildə mövcud olan virtual planetarium/astronomiya proqramıdır. Testdə istifadə etmək üçün simulyasiya olunmuş ulduz şəkillərini toplamaq üçün istifadə olunacaq.
  • Putty - Bu, VPS -i komanda xətti ilə idarə etmək üçün istifadə olunan bir SSH müştərisidir.
  • WinSCP - Windows PC -dən fayl ötürülməsi üçün istifadə olunur.

Addım 2: VPS qurulması

VPS -ni işə salmaq üçün kiçik bir quraşdırma prosesi var. İlk dəfə sizin üçün bir az vaxt ala bilər, amma addımları yaxından təqib etsəniz çox çətin olmayacaq. Bu dərs mənim üçün böyük bir istinad idi, bu təlimatla işləyərkən bunu da oxumağı məsləhət görürəm. Hərflərə riayət etmək üçün lazım olan linux əmrlərinin sətir -sətir xüsusiyyətlərini əhatə edir.

Təxminən, prosesə aşağıdakılar daxildir:

  1. Düzgün Ubuntu versiyası ilə Linux serverinin yaradılması.
  2. Serverin təkmilləşdirilməsi və yenilənməsi.
  3. OpenCV -nin quraşdırıldığı bir iş sahəsi kataloqunun yaradılması.
  4. Bəzi əsasların, yəni bir tərtibçinin, müxtəlif kitabxanaların və Python cildlərinin quraşdırılması.

Bu mərhələdən sonra təlim prosesinə hazırlaşmağa hazırsınız.

Addım 3: Proses

HAAR kaskadlarından istifadə edərək bütün kompüter görmə prosesi əvvəlcə olduqca qarışıqdır, buna görə də bu addım məntiqi bir az daha ətraflı təsvir edir:

Əsas Proses

  1. Maraq obyekti olmayan bir neçə min şəkildən ibarət mənfi bir şəkil verilənlər bazası mövcuddur. Bunun VPS -ə yüklənməsi lazımdır.
  2. Maraqlandığı obyekti özündə cəmləşdirən tək bir müsbət obraz yaradılır. Bu da VPS -ə yüklənməlidir.
  3. Tək pozitiv görüntü seçilmiş parametrlər dəsti ilə təhrif olunur, əyilir, döndürülür və s. Bu, tək bir şəkildən böyük bir müsbət məlumat dəsti yaratmağın süni bir yoludur. (Bir pişiyi tanımaq kimi digər real tətbiqlər üçün sadəcə bir neçə min pişik şəklindən istifadə edə bilərsiniz, ancaq bu qədər müsbət şəkilləriniz yoxdursa bu üsul həmişə uyğun olmur. Burada istifadə olunan süni yanaşma daha az təsirli olacaq, ancaq bu kimi bir vəziyyət üçün yeganə seçimdir).
  4. Mərhələlərlə işləyən bir təlim prosesi aparılır. Hər bir mərhələ, görüntülər içərisində fərqli HAAR tipli xüsusiyyətləri müəyyən etmək üçün bir kaskad hazırlayacaq. Hər mərhələnin başa çatması eksponent olaraq daha uzun çəkir və təsnifatçının effektivliyi hər dəfə artır (yalnız bildiyiniz şəkildə həddindən artıq məşq etmək də mümkündür!).
  5. Təlim edilmiş tək bir kaskad tək bir hədəf obyekti axtara biləcək. Birdən çox unikal obyekti müəyyən etmək istəyirsinizsə, hər biri üçün təlim keçmiş bir kaskad lazımdır. Bu vəziyyətdə, şimal göy yarımkürəsini əhatə edə biləcək bir dəst yaratmaq üçün bənzərsiz ulduz nümunələri üçün təxminən 50 fərqli kaskad öyrətdim.
  6. Nəhayət, hər bir dəstə kaskadını giriş görüntüsünə qarşı işlədən bir aşkarlama proqramı istifadə olunur. Kaskad, daxil edilmiş görüntü daxilində verilən hədəf obyektini axtaracaq.
  7. Uğurlu olarsa, hədəf obyekt giriş şəkli içərisində müəyyən ediləcək.

nb məsələn, peyk oriyentasiya kontekstində istifadə olunarsa, göyərtədəki kamera ilə bir şəkil çəkiləcək. Bu görüntüdəki ən parlaq ulduzlar müəyyən ediləcək və işarələr bu mövqelərdə örtülmüş olacaq. Bu görüntü daha sonra giriş görüntüsündə hədəf obyektlərdən birinin olub olmadığını yoxlayacaq təlim keçmiş kaskadlar dəstinə təqdim olunur. Həqiqi bir pozitiv aşkar edilərsə, bilinən bir bürcün bucaq mövqeyi peyk cisminin oxlarına nisbətən kəşf edilir.

Addım 4: Mənfi və Müsbət

Mənfi

Kaskad təliminin həqiqətən əsas cəhəti, mənfi şəkillərin mümkün qədər çox olmasıdır. Minlərlə, ideal olaraq on minlərlə görüntüdən danışırıq. Tərkibində nəyin olması vacib deyil, məqsəd müxtəlif vizual məlumatlar verməkdir. Classifier Training qovluğunda tərtib etdiyim müxtəlif mənfi şəkil məlumat dəstləri var. Əvvəlcə bunlar yalnız Stellarium -dan toplanan simulyasiya edilmiş ulduz sahə şəkillərindən ibarət idi, amma sonradan məlumat bazasını tapa biləcəyim qədər təsadüfi şəkillərlə artırdım (bəli, bayram şəkillərim də daxil olmaqla …). Oradakı ən böyük məlumat dəsti, indiyə qədər yaratdığım ən böyüyü olan təxminən 9000 şəkildən ibarətdir. Bunu istifadə edərək özünüzü tərtib etməkdən xilas olacaqsınız.

Müsbətlər

Müsbət görüntü (kaskadın tanınması üçün öyrədiləcək hədəf ulduz nümunəsidir) Stellariumdakı ulduz modelinin ekran görüntüsü olaraq başlayır. Bir python proqramı daha sonra görüntünün ən parlaq ulduzlarını təyin edir və işarələri (bu təlimatda daha sonra izah olunur) bu ulduz mövqelərinin üzərinə qoyur. Bu görüntü daha sonra 50x50 pikselə kiçilir. Bu kiçikdir, lakin kaskadlar üçün tələb olunan təlim müddəti bu ölçü artdıqca sürətlə artacaq və buna görə də keyfiyyət və zaman arasında yaxşı bir güzəştdir.

Addım 5: Stellarium nəzarət

Stellarium nəzarəti
Stellarium nəzarəti
Stellarium nəzarəti
Stellarium nəzarəti

GitHub anbarının Stellarium Scripts qovluğunda, Stellariumun istifadəsinə nəzarət etmək üçün yazdığım üç proqram var. Onları istifadə etmək üçün Stellarium quraşdırma qovluğunuzun skript qovluğuna yerləşdirin. Onları işə salmaq üçün, Stellarium menyusundan skriptlər pəncərəsini aça bilərsiniz və ya sadəcə Stellariumu işə salan və dərhal seçilmiş proqramı işlədən skriptlər qovluğundakı proqramı iki dəfə tıklayaraq aça bilərsiniz.

tezis_4 və tezis_5, hər biri şimal və cənub olmaqla, göy yarımkürələrinin təxminən 2000 şəklini çəkir. Bunlar mənfi görüntülərin məlumat bazalarını yaratmaq, müsbət imicə qarşı təlim vermək üçün istifadə edilmişdir. Şimal və cənub arasındakı fərq, şimal yarımkürəsinin ulduz nümunələrini cənub göy yarımkürəsinin görüntü məlumatlarına qarşı öyrətməklə hədəf (müsbət) ulduz modelinin mənfi məlumatlarda mövcud olmamasını təmin etmək üçün sadə bir yoldur. (Müsbət bir görüntü mənfi şəkil verilənlər bazasında da varsa, bu təsnifatın keyfiyyətinə təsir edəcək).

thesis_setup da faydalıdır - bu, Stellarium -u kosmosdan görünüşü simulyasiya etmək üçün istifadə olunan şəkilləri çəkmək üçün uyğun olaraq qurur. Bir şəkil çəkmək istədiyiniz zaman ehtiyac duyduğunuzu saxlamaq üçün avtomatik olaraq menyular, şəbəkə xətləri, etiketlər və s. Gizlətmək kimi hərəkətlər edir.

Addım 6: Roket Adam

Raket Adam
Raket Adam

Təlim etdiyim ilk kaskadlar heç bir ulduz naxışını düzgün müəyyən edə bilməmişdi. Çox etibarsız idilər və yalan pozitivliyə çox meylli idilər. Mənim təsəvvürüm, Stellarium-dan (əsasən qara bir fonda yalnız ağ nöqtələr) olan ulduz sahə görüntülərinin uğurlu təsnifatçı təhsili üçün kifayət qədər HAAR tipli xüsusiyyətləri ehtiva edəcək kifayət qədər vizual məlumatlara malik olmaması idi. Gecə gec olduğunu düşünürəm, amma ulduz sahəsindəki hər parlaq ulduzun üzərinə avtomatik olaraq kiçik bir kiçik şəkil yerləşdirmək üçün bir proqram yazmaq fikrini sınamaq qərarına gəldim.

Elton

Bu axmaq bir sınaq idi, amma hər parlaq ulduz yerinə Elton John -un üzünün kiçik bir şəklini əlavə edərək, təsnifatçını bu müsbət görüntüyə qarşı öyrətmək və sonra kaskadları orijinal görüntüyə qarşı işlətməklə, düzgün tapmağın daha təsirli olduğunu gördük. düzgün model. Bir şeyin üstündə olduğumu bilirdim!

Addım 7: Etibarlı Markerlər

Etibarlı Markerlər
Etibarlı Markerlər

"Eltonlar" nəzəriyyəni sübut etsə də, ulduz modelinin hansı istiqamətdə təqdim olunmasından asılı olmayaraq eyni görünməsi üçün tam fırlanma simmetriyasına malik bir markerə ehtiyacım var idi. Bir sıra marker növlərini sınadım və sağ altdakı növün ziddiyyətli qara və ağ üzüklərlə ən təsirli olduğunu gördüm. GitHub repo -nun pozitiv qovluğunda təqdim olunan python proqramı, müəyyən bir şəkildəki ən parlaq ulduzların necə müəyyən edildiyini göstərir və bu işarələr avtomatik olaraq həmin mövqelərdə üst -üstə düşür. İndi öyrədilə biləcək əsas ulduz nümunələrinin bir nümayəndəsini yaratdıq.

Addım 8: Kaskadlardan istifadə

Kaskadlardan istifadə
Kaskadlardan istifadə

Bir sıra kaskadlar hazırladıqda, şəkildəki bir obyekti müəyyən etmək üçün onlardan necə istifadə edəcəyinizi bilməlisiniz!

Cascade_test19.py proqramını tapacağınız GitHub -un Ulduz Tanıma qovluğuna baxın. Bu cəlbedici adlandırılmış proqram, müəyyən bir qovluqdan bir sıra kaskadlar götürür və hamısını bir giriş görüntüsünə və edilən algılamalar haqqında hesabatlara qarşı aparır. 'DetectMultiScale' funksiyası bunun əsasını təşkil edir və aşkarlama prosesini təyin edən müxtəlif arqumentlər tələb edir. Bunları dəyişdirmək, kaskad təsnifatçısının performansı üçün çox vacibdir və yalan pozitivlərin necə aradan qaldırılacağına baxdığımız növbəti addımda bunun daha çox müzakirə oluna bilər.

Bu, peyk oriyentasiya sistemində məhdudlaşdırıcı qutunun mərkəzindəki piksel dəyərini müəyyən edilmiş ulduz modelinin Ra/Dec göy koordinatına uyğunlaşdıraraq və sonra görüntünün mərkəzindən açısal yerdəyişmə ilə əlaqələndirməklə tətbiq oluna bilər (kamera ox). Buradan, linzaların təhrif edilməsi (gnomonik proyeksiyaya yaxın) anlayışından istifadə edərək, peykin bucağını yalnız iki müsbət identifikasiyadan tapmaq olar.

Addım 9: Yanlış pozitivlər haqqında necə pozitiv qalmaq olar

Yanlış pozitivlər haqqında necə pozitiv qalmaq olar
Yanlış pozitivlər haqqında necə pozitiv qalmaq olar
Yanlış pozitivlər haqqında necə pozitiv qalmaq olar
Yanlış pozitivlər haqqında necə pozitiv qalmaq olar

Bu iki şəkil, fərqli bir parametrlə, eyni bir görüntüyə qarşı kaskad dəstinin sınaq nəticələrini göstərir. Aydındır ki, birinci görüntü əsl eyniləşdirməni ehtiva edir, eyni zamanda çoxlu sayda yanlış pozitivləri, ikinci görüntü isə yalnız düzgün identifikasiyanı ehtiva edir.

GitHub repo -nun Ulduz Tanıma qovluğundakı cascade_test19.py proqramı, nəticələri sıralamaq üçün iki üsuldan istifadə edir. Birincisi, detectMultiScale functon, pəncərədəki hədəf ulduz modelinin təxmini ölçüsü olduğu üçün ağlabatan olan Miminum və Maksimum nəticə ölçüsünü təyin edir (verilən lens və böyütmə üçün - simulyasiya edilmiş Stellarium şəkillərim Raspberry Pi V2 Kamera) məlumdur. İkincisi, kod ən böyük məhdudlaşdırma qutusu ilə nəticəni seçəcək (əvvəlki məhdudiyyətlər daxilində). Test zamanı bunun əsl müsbət olduğu aşkarlandı. Üçüncüsü, proqram, bu şəxsiyyəti əsl müsbət olaraq qiymətləndirmək üçün lazım olan minimum 'levelWeights' (təsirli olaraq 'etibar dəyəri') təyin edir. Bu üsulla, kaskadlar düzgün nəticəni tapmaqda təsirli idi.

Ulduz sahəsindəki şəkillərlə yanaşı, məsələn, dəftərimi, kubokumu və s. Yuxarıda göstərilən üsullar həvəsləndirici olan bütün hallarda yaxşı işləyir.

Addım 10: Müzakirə

Müzakirə
Müzakirə
Müzakirə
Müzakirə
Müzakirə
Müzakirə

Təkmilləşdirmə sahələri

Bu mənim üçün mürəkkəb bir layihə idi və mövzu ilə bağlı anlayışımı həqiqətən itələdi. Layihəni sizinlə bölüşə biləcəyim bir nöqtəyə çatdırmaq üçün cəmi bir neçə aya yaxın tam zamanlı iş apardı, amma metodun performansını yaxşılaşdırmaq üçün daha çox iş görülməlidir. Göründüyü kimi, müəyyən məhdudiyyətlər daxilində yaxşı işləyə bilər. Hansı sahələrin əlavə işə ehtiyacı olduğunu müəyyən etmək üçün çalışmışam və inşallah gələcək aylarda bunları həll etmək üçün vaxt ayıra biləcəyəm. Onlar:

Açı - Bu, təsnifatçıların nəticələrinin fırlanma baxımından dəyişməz olması fikri, hədəf ulduz şəklini əks etdirən görüntünün təqdim olunduğu bucaqdan asılı olmayaraq, hədəf ulduz modelini etibarlı şəkildə müəyyən etməli olduğu kompleks bir sahədir. Vahid bir istiqamətdə bir giriş şəkli istifadə edərək təlim keçmiş bir kaskad, bu görüntüyü təsadüfi istiqamətlərdə təyin edə bilməyəcək, buna görə də giriş açılarında bir sıra qəbul edə bilən kaskadları hazırlamaq üçün müsbət görüntü bucağının variasiyası təlim prosesinə daxil edilməlidir. Kaskad təlim əmrlərindəki 'maxzangle' parametri, giriş pozitiv görüntünün verilən mənfi şəkillərlə üst -üstə düşəcəyi bucağın bir həddini idarə edən radyanlarda bir mübahisə edir, buna görə də ortaya çıxan müsbət görüntü dəsti bir sıra istiqamətləri ehtiva edir. müsbət imic. Ancaq bu maxzangle artdıqca, kaskadın qəbul nisbəti (geniş şəkildə desək, keyfiyyət) kəskin azalacaq. Düşünürəm ki, həll, böyük bir oriyentasiya yayılması daxil olmaqla belə keyfiyyətli bir kaskad təsnifatçısının yaradılmasını təmin etmək üçün istifadə etdiyimdən daha çox mənfi şəkillər məlumat bazası istifadə edərək kaskad hazırlamaqdır.

Başqa bir potensial həll, müəyyən bir hədəf üçün hər bir kaskadın tam 360 dərəcə fırlanmasının müəyyən bir hissəsini idarə edən bir sıra kaskadlar hazırlamaq olardı. Bu yolla hər bir kaskadın keyfiyyəti yüksək səviyyədə saxlanıla bilər, amma digər tərəfdən bu daha çox kaskadlarla nəticələnəcək və buna görə də identifikasiya prosesi daha yavaş olacaq.

'DetectMultiScale' funksiyası tərəfindən verilən bir dəyər olan 'levelWeight' parametri, edilən algılamada bir etibar dəyərinə bənzəyir. Bunu araşdıraraq, görüntünün istiqamətinin hər iki istiqamətdə artması ilə pozitiv identifikasiyaya olan inamın necə kəskin azaldığını göstərən və bunun zəif bir nöqtə olduğuna dair düşüncələri təsdiqləyən yuxarıdakı qrafik yaradılmışdır.

Piksel Yerləşdirmə - Daha sadə, eyni zamanda problemli bir nöqtə, iki ulduzun fərdi piksellərinin aydın şəkildə görülə bilməsi üçün bir ulduz görüntüsünün böyüdülmüş görünüşünü göstərən aşağıdakı iki şəkil ilə göstərilən piksel yerləşdirməsidir. Proqramda, ən parlaq ulduzlar istisna olmaqla, hamısını ovmaq üçün istifadə edilən eroziya prosesi, ilk ulduzu saxlayacaq, ikincisini isə eyni parlaqlıqda olmasına baxmayaraq atacaq. Bunun səbəbi, birinci ulduzun piksel üzərində ortalanması, ikincisinin isə belə olmamasıdır. Eroziya funksiyası, bir qrupun mərkəzi pikselinin ətrafından piksellərin konsentrik halqalarını çıxarır və beləliklə birinci ulduz eroziya funksiyasından sağ çıxaraq mərkəzi pikselə sahib olacaq, ancaq ikinci ulduz şəkildən tamamilə silinəcəkdir. Buna görə də etibarlı işarələr ikinci ulduza deyil, yalnız birinci ulduza yerləşdiriləcək. Bu, müəyyən bir ulduz sahəsindəki parlaq ulduzların marker alacağı ilə əlaqədar uyğunsuzluqlara səbəb olacaq (və buna görə də təlim keçmiş təsnifatçılarla müqayisə ediləcək) - bu səbəbdən düzgün pozitiv müşahidənin mümkün olmaması mümkündür.

Addım 11: Son söz

Son Söz
Son Söz

Təlimatlarımı oxuduğunuz üçün təşəkkür edirəm, inşallah bu layihəni maraqlı gördünüz. Bunun üzərində işləmək çox maraqlı bir proses idi, konsepsiya üzərində işləməyə başladığımdan bir ildən çox vaxt keçdi və nəticələr bu nöqtəyə qədər məni ruhlandırdı. Oxuduğum ədəbiyyatdan bu olduqca orijinal bir anlayışdır və daha çox inkişaf etməklə həvəskar astronomiya və ya daha çox tətbiq üçün əlbəttə tətbiq oluna bilər.

Bu layihə mənim üçün dik bir öyrənmə əyrisi idi və buna görə də daha çox proqramlaşdırma təcrübəsi olan bəzi oxucuların GitHub səhifəsi vasitəsilə layihənin davamına töhfə verməkdən ilham alacaqlarını ümid edirəm və bu açıq mənbə vasitəsini inkişaf etdirməyə davam edə bilərik. Şərhlərinizi oxuya bilərəm, amma çox çətin suallar verməyin!

Space Challenge
Space Challenge
Space Challenge
Space Challenge

Space Challenge -da Runner Up

Tövsiyə: