Maxammadjonov Murodjonning it/Mutaxassislik tanlov fani


Download 0.59 Mb.
bet3/3
Sana08.11.2023
Hajmi0.59 Mb.
#1758368
1   2   3
Bog'liq
2 651 20 Maxammadjonv M Timsollarni tanib olish tizimlari

Amaliy mashg’ulot

Mavzu: Yuzning old qismini tanib olish
Yuzning old qismini tanib olish uchun ham OpenCV kutubxonasidan foydalanamiz. Quyidagi kod orqali sizga yordam berishim mumkin:

```python


import cv2

# Yuzning old qismini tanib olish uchun funktsiya


def detect_frontal_face(image_path):
# Haqiqiy rasmni yuklash
image = cv2.imread(image_path)
# Yuzni qorachig'i uchun pre-trained modelni yuklash
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# Rasmni oqish uchun ko'rsatkichlarni olish
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Yuzni qorachig'i aniqlash
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Eng yuqori yuzni aniqlash
max_area = 0
max_face = None
for (x, y, w, h) in faces:
if w * h > max_area:
max_area = w * h
max_face = (x, y, w, h)
# Eng yuqori yuzni markalash
if max_face is not None:
(x, y, w, h) = max_face
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 3)
# Natijani ko'rsatish
cv2.imshow('Detected Face', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Rasm faylini ko'rsatish


image_path = 'rasm.jpg'

# Yuzning old qismini tanib olish funktsiyasini chaqirish


detect_frontal_face(image_path)
```

Ushbu kod rasm faylini o'qiydi va yuzning old qismini aniqlaydi. Eng yuqori yuzni markalaydi va natijani ko'rsatadi. Sizga rasm faylini `image_path` o'zgartirib, kodni ishga tushirishingiz mumkin.



  1. Amaliy mashg’ulot

Mavzu: Yuzning old qismini tanib olishda neyron tarmoq
Yuzning old qismini tanib olish uchun neyron tarmoq dasturi sifatida "dlib" kutubxonasidan foydalanish mumkin. Dlib kutubxonasini o'rnatish uchun quyidagi komandani ishga tushiring:

```
pip install dlib


```

Keyin quyidagi kod orqali yuzning old qismini tanib olish dasturini yaratishingiz mumkin:


```python


import dlib
import cv2

# Yuzning old qismini tanib olish uchun funktsiya


def detect_frontal_face(image_path):
# Haqiqiy rasmni yuklash
image = cv2.imread(image_path)
# Yuzni qorachig'i uchun pre-trained modelni yuklash
face_detector = dlib.get_frontal_face_detector()
# Rasmni oqish uchun ko'rsatkichlarni olish
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Yuzlarni aniqlash
faces = face_detector(gray)
# Eng yuqori yuzni aniqlash
max_area = 0
max_face = None
for face in faces:
x, y, w, h = face.left(), face.top(), face.width(), face.height()
if w * h > max_area:
max_area = w * h
max_face = (x, y, w, h)
# Eng yuqori yuzni markalash
if max_face is not None:
(x, y, w, h) = max_face
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 3)
# Natijani ko'rsatish
cv2.imshow('Detected Face', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Rasm faylini ko'rsatish


image_path = 'rasm.jpg'

# Yuzning old qismini tanib olish funktsiyasini chaqirish


detect_frontal_face(image_path)
```

Ushbu kod rasm faylini o'qiydi va yuzning old qismini aniqlaydi. Eng yuqori yuzni markalaydi va natijani ko'rsatadi. Sizga rasm faylini `image_path` o'zgartirib, kodni ishga tushirishingiz mumkin. Dlib kutubxonasini o'rnatishdan oldin `pip install dlib` komandasini ishga tushirishingizni unutmang.


Neyron tarmoqning kaskadli modelini Python tilida yaratish uchun OpenCV kutubxonasidan foydalanamiz. Kaskadli model, ko'zni qorachig'i uchun pre-trained XML fayllaridan foydalanadi. Quyidagi kod orqali sizga yordam berishim mumkin:

```python


import cv2

# Kaskadli model orqali ko'zni qorachig'i aniqlash uchun funktsiya


def detect_eyes(image_path):
# Haqiqiy rasmni yuklash
image = cv2.imread(image_path)
# Ko'zni qorachig'i uchun pre-trained modelni yuklash
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
# Rasmni oqish uchun ko'rsatkichlarni olish
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Ko'zni qorachig'ini aniqlash
eyes = eye_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Har bir ko'zni qorachig'ini markalash
for (x, y, w, h) in eyes:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 3)
# Natijani ko'rsatish
cv2.imshow('Detected Eyes', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Rasm faylini ko'rsatish


image_path = 'rasm.jpg'

# Kaskadli model orqali ko'zni qorachig'ini aniqlash funktsiyasini chaqirish


detect_eyes(image_path)
```

Ushbu kod rasm faylini o'qiydi va ko'zni qorachig'ini aniqlaydi. Aniqlangan ko'zni qorachig'ini markalaydi va natijani ko'rsatadi. Sizga rasm faylini `image_path` o'zgartirib, kodni ishga tushirishingiz mumkin. Rasm faylini o'zgartirib, kodni ishga tushirishingiz mumkin.


Siluetni baholash va klasterlash sifatini baholash uchun Python tilida "scikit-learn" kutubxonasidan foydalanish mumkin. Bu kutubxona, ma'lumotlarni tahlil qilish, baholash va klasterlash uchun bir qator algoritmlarni o'z ichiga oladi. Quyidagi kod orqali sizga yordam berishim mumkin:

```python


import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans

# Siluetni baholash va klasterlash sifatini baholash uchun funktsiya


def evaluate_clustering(X, n_clusters):
# Klasterlash algoritmini yaratish va bajarish
kmeans = KMeans(n_clusters=n_clusters)
labels = kmeans.fit_predict(X)
# Siluetni baholash
silhouette_avg = silhouette_score(X, labels)
print("Silhouette Score:", silhouette_avg)
# Klasterlarni vizualizatsiya qilish
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title("Clustered Data")
plt.show()

# Ma'lumotlarni yaratish


X = np.random.rand(100, 2)

# Siluetni baholash va klasterlash sifatini baholash funktsiyasini chaqirish


evaluate_clustering(X, n_clusters=3)
```


Ushbu kod ma'lumotlarni yaratadi, klasterlash algoritmini bajaradi va siluetni baholaydi. Natijada, siluet qiymati va klasterlarni vizualizatsiya qiladi. Sizga ma'lumotlarni `X` o'zgartirib, klasterlar sonini (`n_clusters`) ham o'zgartirishingiz mumkin. Ma'lumotlarni o'zgartirib, kodni ishga tushirishingiz mumkin.
Download 0.59 Mb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling