Salam, mən Denizhan Şahin. Yozgat Bozok Universitetində Kompüter Mühəndisliyi 3-cü kurs tələbəsiyəm. Pardus 21 Hata Ayıklama və Təklif Yarışması üçün işimi, Pardusdan niyə istifadə etdiyimi və ölkəmizin yerli və milli proqram təminatına töhfə vermək motivasiyamı izah edəcəyəm.

Bildiyiniz kimi yerli və milli proqram təminatı ölkəmizin kibertəhlükəsizliyi, Ar-Ge işlərinin davamlılığı, xarici proqram təminatının istifadəsinə görə ödənilən ödənişlərin azalması və onun iqtisadi töhfəsi, texnologiya ixracının artması, özümüzün inkişafıdır. texnologiyanın öz sərmayəsi və biliyi ilə ixtisaslı işçi qüvvəmiz tərəfindən mənimsənilməsi və bu təcrübələrin gələcək nəsillərə ötürülməsi vacibdir.

Orta məktəb illərimdə başlayan texnologiya dünyasına marağım gələcəkdə yerli texnologiyalardan istifadə etməyimdə mühüm amil oldu. Yerli texnologiyaları inkişaf etdirmək, müasir tədqiqatlara töhfə vermək və ölkəmiz üçün ixtisaslı mühəndis olmaq həmişə mənim arzum olub. Mən 8 ildir ki, Pardus əməliyyat sistemindən aktiv şəkildə istifadə edirəm, baxmayaraq ki, yerli proqram təminatının əhəmiyyətini xüsusilə orta məktəb illərində Pardus ilə görüşdükdən sonra başa düşdüm. Xüsusilə orta məktəb və orta məktəb illərimdə məktəbli dostlarıma və müəllimlərimə Pardus və yerli proqram təminatı haqqında məlumat verdim və onları həm Pardus, həm də Linux dünyası ilə tanış etdim.

Texnologiyaya olan marağıma və yerli proqram təminatının əhəmiyyətini daha yaxşı başa düşməmə uyğun olaraq, universitet tələbəsi olduqdan sonra, olduğum icmalarda xüsusilə Pardus və Linux-da proqram təminatı, süni intellekt və s. üzərində işləməyə başladım. . Texnologiyalar üzərində işləmişəm. Gördüyüm və arzuladığım işlərlə yanaşı, yerli və milli əməliyyat sistemimiz Pardus-a öz bilik və təcrübəmi qatmaq üçün Pardus 21 Sazlama və Təklif Müsabiqəsində iştirak etmək qərarına gəldim. İlk öncə bu qərarıma dəstək olan hörmətli akademik məsləhətçimə, ictimaiyyət dostlarıma və yaxınlarıma təşəkkür edirəm.

Müsabiqə zamanı təcrübələrim

Pardus 21 Sazlama və Təklif Müsabiqəsi üçün əvvəlcə birdən çox kompüterdə işlədim. Ümumilikdə dörd kompüterdə işimi davam etdirdim. Bu kompüterlərdən ikisi Nvidia GPU dəstəyi ilə noutbuk və kompüterlər, digərləri isə biri AMD GPU, digəri isə Nvidia GPU dəstəyi ilə masa üstü kompüterlər idi. İlk öncə əsas məqsədim Pardus əməliyyat sisteminin quraşdırılması mərhələlərində yarana biləcək problemlər və təkliflər üzərində işləmək idi. Gələcəkdə sadə kompüter istifadəsi üçün lazım olan təkliflər və istifadəçinin qarşılaşa biləcəyi problemlər üzərində işləmək olmuşdur. Bundan əlavə, aktiv şəkildə istifadə etdiyim proqram təminatı Pardus əməliyyat sistemində proqram təminatını işə salmaq, onu işə salmaq üçün müvafiq şərait və sınaq mühitini yaratmaq və baş verə biləcək səhvləri təhlil etmək idi. Bununla belə, Pardus əməliyyat sistemi üçün faydalı ola biləcəyini düşündüyüm layihələr hazırlayıram. Bundan əlavə, vacib ola biləcək səhvlər üçün qərarlarımı və həll təkliflərimi inkişaf etdirmək olmuşdur.

Pardus əməliyyat sisteminin uzun müddət istifadəçisi olaraq ilk olaraq öz təcrübələrim üzərində işlədim. Bundan əlavə, Pardusdan başqa heç bir əməliyyat sistemindən istifadə etmədən universitet həyatımda və gündəlik həyatda istifadə etdiyim layihə işlərində Pardusdan istifadə edərək, problemləri müəyyən etməyi və planlaşdırdığım və ya edəcəyim işlər üçün bilik yaratmağı təmin etdim. sonra planlaşdırın.

Pardus üzərində işimi davam etdirərkən qeyd etdim ki, bəzən proqramların quraşdırılması zamanı səhvlər olur və əlaqədar əməliyyatlar zamanı Pardus-u kompüterə yenidən quraşdırmalıyam. Xüsusilə bəzi qrafik interfeysləri sınamaq istəyəndə, Nvidia Driver və s. Proqramın quraşdırılması və silinməsi zamanı sistemin zədələndiyini və bəzən Nvidia CUDA Toolkit-in istədiyiniz kimi işləmədiyini müşahidə etdim. Bəzi Python kitabxanalarını quraşdırarkən, bəzi qeyri-sistem paketlərini quraşdırmaq istəyərkən və internetdə bəzi paketləri tapa bilmədiyim zamanlar da olub. Bəzi hallarda əməliyyat sisteminin işləmədiyi və heç bir problemim olmayanda belə onu aşkar edə bilmədiyim hallar olub. Bəzi hallarda, kök istifadəçi kimi, bəzi paketlərin quraşdırılması və s. sistem boyu. əməliyyatlar etdim.

Əlaqədar işlərim üçün rastlaşdığım hər cür problemləri tam və ya qismən həll etməyə çalışmışam. Ancaq müəyyən bir planlaşdırma və araşdırma-inkişaf prosesindən sonra istədiyim layihələri davam etdirmək və ya dayandırmaq qərarına gəldim. Yarışma prosesində təxminən bir il Pardus əməliyyat sistemindən istifadə etdim və layihələrimin hazırlanması zamanı bunun mənə böyük töhfə verdiyini anladım.

Müsabiqə Prosesinin Mənə Töhfəsi

Müsabiqə prosesinin mənə verdiyi töhfə həqiqətən də mənim üçün faydalı oldu. Pardus əməliyyat sistemindən daim istifadə etmək mənə böyük zövq verdi, çünki yerli və milli əməliyyat sistemindən istifadə hər mənada böyük texnoloji imkandır.

Hər şeydən əvvəl tədqiqat prosesinin necə həyata keçirilə biləcəyini başa düşdüm. Müxtəlif mövzularda məqalələr oxumağı, qarşıya çıxan problemlərin həlli yollarını araşdırmağı və istifadə olunacaq proqram təminatının rəsmi mənbələrini araşdırmağı öyrəndim.

İkincisi, proqram təminatının davamlı istifadəsi zamanı qarşıya çıxa biləcək problemlərin həlli yollarını inkişaf etdirməyi öyrəndim və əlaqədar problemlər və proqram təminatı baxımından bilik və təcrübə qazandım.

Üçüncüsü, layihənin hazırlanması və məhsula çevrilməsi mərhələsində müvafiq planlaşdırma və ideya inkişaf mərhələləri mənə öz töhfəsini verdi.

Dördüncüsü, müsabiqə prosesində planlı iş, təcrübələrin inkişaf etdirilməsi və yeni təcrübələrin əldə edilməsi, digər gələcək tədqiqatlarda tədqiqatlardan istifadə etməyi öyrənmək, internetdən və digər resurslardan səmərəli istifadə etmək və s. bilik və təcrübə qazanmışam.

Mən işimi necə edirəm? inkişaf etdirdim?

İşimi təkmilləşdirmək üçün ilk olaraq Pardus-da Nvidia və AMD qrafik kartlı kompüterlərdə digər əməliyyat sistemlərində aktiv şəkildə istifadə etdiyim proqram və drayverləri quraşdırıb istifadə etməyə başladım. Əvvəlcə Nvidia GPU-ları olan kompüterlər üçün Nvidia Driver sürücülərini quraşdırdım. Müvafiq quraşdırmalardan sonra müəyyən etdim ki, bəzən əməliyyat sistemində bəzi problemlər yaranır. Qrafik interfeysin işləməməsi kimi halları həll etmək üçün ilk növbədə quraşdırdığım drayverləri silmək və qrafik interfeys proqramını yenidən quraşdırmaq müəyyən rahatlıq yaratdı, lakin daha stabil proses üçün Pardus-u bu kompüterlərə yenidən quraşdırdım. Xüsusilə süni intellekt tədqiqatları aparmaq və əməliyyat sistemindən daha səmərəli istifadə etmək üçün Pardus üçün CUDA və cuDNN proqram təminatı quraşdırdım. Bu proqram təminatı ilə süni intellekt və kompüter görmə kimi işlərimi daha sürətli yerinə yetirə bilərdim. Xüsusilə TensorFlow və OpenCV adlı süni intellekt kitabxanasını və kompüter görmə sahəsində istifadə olunan digər kitabxanaları istifadə etdiyim kompüterlərə quraşdırdım.

Üz tanıma proqramı

Xüsusilə, Pardus əməliyyat sisteminin istifadəçi təhlükəsizliyinə töhfə vermək və bu gün Linux əməliyyat sistemlərində hələ də geniş auditoriya tərəfindən istifadə olunmayan üz tanıma proqram təminatı hazırlamaq qərarına gəldim. Mən ilk dəfə Keras RetinaNet və TensorFlow ilə işləməyə başladım. Xüsusilə Keras RetinaNet-in oxuduğum üz tanıma məqalələrində daha yüksək dəqiqlik dərəcəsinə sahib olması məni ilk olaraq bu proqramdan istifadə etməyə vadar etdi. Bununla belə, ArcFace kimi qabaqcıl üz tanıma proqramlarını və GoogleNet kimi digər proqramları işimə inteqrasiya etməyə çalışmışam. Xüsusilə mənim işim üçün ResNet təsvirin tanınması arxitekturasının möhkəm bir quruluşu var ki, bu da mənim üstünlüklərim arasındadır. Keras RetinaNet ilə ilk olaraq insan üzünü aşkar edən model təlimi keçirdim. Bu təlim keçmiş modellə mən insanların üzlərini aşkar edə bilərdim. Daha sonra aşkar edilmiş üz şəklini yazmaq və bu üz təsviri üçün ayrıca model hazırlamaq üzərində işlədim. Təhsilim zamanı istifadə etdiyim qrafik kartı RTX 2060 (o, təhsilim zamanı ən yüksək tutumlu qrafik kartıdır) tam effektiv deyildi və xüsusən də bu qrafik kartın bütün resurslarından istifadə olunduğundan və istədiyim dəqiqlik dərəcəsini əldə edə bilmədiyim üçün , Keras RetinaNet kimi çox yavaş proqram təminatının ekranı.Mən qərara gəldim ki, kartı olmayan kompüterlər üçün heç nə edə bilməz.

Ancaq başqa bir üsul olaraq, ümumiyyətlə süni intellekti dəstəkləməyən Haar Cascade adlı proqramla işlədim. Bu proqram vasitəsi ilə insan sifətində müəyyən edilmiş nöqtələri aşkar etmək və bu nöqtələr üzərində riyazi əməliyyatlar həyata keçirərək üz tanıma etmək qərarına gəldim. Bu mərhələdə əldə etdiyim nöqtə məlumatları ilə maşın öyrənməsi etməyi düşünsəm də, Haar Cascade ilə çox aşağı dəqiqlik dərəcələri və insan üzündəki bəzi nöqtələrin aşkarlanmasındakı problemlər məni bu proqramın yerinə başqa bir proqram arxitekturasından istifadə etməyimə səbəb oldu.

Bununla belə, oxuduğum mənbələrə və oxuduğum mənbələrə uyğun olaraq DeepFace adlı arxitekturadan istifadə etmək qərarına gəldim. Bu arxitektura isə bu istiqamətdə işlərimi davam etdirməyimə, xüsusən də açıq mənbə strukturu və yüksək dəqiqlik dərəcəsi ilə bir istifadəçi üçün vacib olan sistem resurslarından səmərəli istifadə etməyimə şərait yaratdı. Bu proqram təminatının ən mühüm xüsusiyyəti dərin öyrənmə alqoritmindən istifadə etməklə kompüterdə qeydiyyatda olan şəxsin sifət şəklini login zamanı çəkilmiş şəkildə aşkarlanan insan siması ilə müqayisə etməkdir.

Növbəti addımlarım DEB paketi yaratmaqdır. DEB paketində bash və Python fayllarından fəal istifadə etdim. PyQt5 ilə quraşdırma mərhələsi ilə bağlı interfeys inkişafı etdim. Bu interfeys vasitəsilə istifadəçi öz üz şəklini yazacaq və lazım olan TensorFlow, DeepFace və digər proqram təminatını daha asan quraşdıra biləcək. DEB paketində iki əsas bash faylı var. Bu paketlərdən biri ilə əlaqədar quraşdırma mərhələlərini yerinə yetirərkən, kompüter işə salınarkən üz tanıma digər bash faylı ilə həyata keçiriləcək. Daha sonra SQLite3 ilə düzgün və ya yanlış daxilolmalar üçün verilənlər bazasında müvafiq əməliyyatlar yerinə yetirildi və istifadəçi öz kompüterinin təhlükəsizliyini istədiyi kimi idarə edə biləcək. Bundan əlavə, səhv daxil olan kamera görüntüsü istifadəçinin daha sonra yoxlaya bilməsi və icazəsiz kompüterini açmağa çalışan insanları tanıması üçün saxlanılır. Bununla belə, istifadəçi istəyə görə bütün proqram məlumatlarını silmək imkanı əldə edəcək.

İstifadəçi isə üz tanıma tətbiqini ilkin tətbiq halına gətirərək, hər kompüter işə salındıqda üz tanıma funksiyasını yerinə yetirə biləcək. Bunun üçün masaüstü proqram menyusundakı proqram işarəsindən istifadə edilə bilər. Bundan əlavə, qabaqcıl əməliyyatlar üçün terminal əmrlərinə üstünlük verildi və bununla da istifadəçi üçün tam avtorizasiya mühiti yaradıldı. Bu inkişaf etdirilən proqramla, heç bir video kartı olmayan və ya dəstəklənməyən istifadəçilərin istifadəsi asandır və dəstəklənən bir video kart varsa, bütün resurslardan istifadə olunsa belə yüksək təhlükəsizlik dərəcələri əldə edilmişdir.

Mətnin tanınması proqramı

Pardus istifadəçilərinin istənilən təsvirdəki mətn ifadələrini asanlıqla əldə edib istifadə etmələri və ümumilikdə Pardus istifadəçilərinin gündəlik əməliyyatlarını asanlaşdırmaq üçün proqram təminatı hazırlamaq qərarına gəldim. Bunun üçün OCR (Optik Xarakter Tanıma) istifadə etdim və bu üsulla şəkil üzərində mətn ifadələrini asanlıqla əldə etmək olar. OCR əsasən üç əsas başlıq altında öyrənilir: Şəkilin ilkin işlənməsi, Xarakterin tanınması və Postprocessing. Şəkilin əvvəlcədən işlənməsi ilə təsviri təkmilləşdirmək və təsvirdən aydın ifadələr əldə etmək mümkündür. Xarakterin tanınması mərhələsində mətn ifadələri aşkar edilir və bunun üçün xüsusiyyət çıxarma üsulundan istifadə edilir, mütləq aşkar edilən simvollar işlənir, lakin qəti şəkildə müəyyən edilə bilməyən simvollar işlənmir. Post-processing mərhələsi ilə yanaşı, aşkar edilmiş simvollar dəqiqlik üçün sınaqdan keçirilir.

OCR üçün istifadəçinin asanlıqla istifadə etməsi üçün PyQt5 və Pytesseract kitabxanaları istifadə olunur. O, həmçinin DEB paketi ilə Pardus istifadəçilərinə də təqdim olunacaq.

Tətbiqin iş alqoritmi istifadəçidən müvafiq təsvirin fayl yoludur. Fayl yolu səhvdirsə, xəta çıxır. Şəkil emalı düzgün olarsa, OCR prosesləri həyata keçirilir. OCR ilə mətn ifadəsi aşkar edilmədikdə xəta çıxışı verilir. Mətn ifadəsi aşkar edilərsə və OCR ümumiyyətlə uğurlu olarsa, mətn ifadəsi ekrana çıxarılır. İstifadəçi istəyə görə müvafiq ifadələri TXT formatında saxlaya bilər.

QR kod generatoru

Pardus istifadəçiləri heç bir başqa proqram və ofis sənədlərinə ehtiyac duymadan və s. Ərazilərdə daha asan QR kodu yaratmaq üçün proqram hazırlanıb. Bu proqramla PyQt5, Pypng, Pyqrcode kitabxanalarından istifadə olunur. İstifadəçi üçün DEB paketi yaradılmışdır. İstifadəçi əvvəlcə istədiyi mətn ifadələrini yazır. Sonra Pyqrcode ilə QR kodu yaradılır. Yaradılan QR kodu istifadəçinin ev kataloqunda yaradıldıqda, vaxt məlumatı faylın adı kimi saxlanılır və bunun üçün Time və Pypng kitabxanalarından istifadə olunur. Bundan əlavə, yaradılan QR kodu istifadəçinin ekranında göstərilir.

Bundan əlavə, tətbiqin loqosu Pardus sözündən yaradılıb və loqo rəngi Pardus loqosu ilə uyğun gəlir.