S
Chargement…
Disponible pour des nouveaux défis

Développeur Web & Chercheur IA.

Hello C'est Sem Kasanga. Je developpe des application web robustes en utilisant Laravel et je suis passionné par l'Intelligence Artificielle et la Vision par Ordinateur.

Sem Kasanga

Entreprise Avec Lesquelles J'ai Travaillé

Client 1 Client 2

Mon Expertise Technique

Voici les differentes technologies et domaines dans lesquels je travaille régulièrement pour créer des solutions innovantes et efficaces.

Technologies Utilisées

HTML5 HTML5
CSS3 CSS3
Tailwind Tailwind CSS
PHP PHP
Laravel Laravel
Python Python

Programmation Web

Conception de sites vitrines pour vous ou vos entreprise ainsi que d'applications full-stack modernes et scalables. Expertise approfondie en Laravel et PHP pour des architectures robustes, combinée à des interfaces fluides avec Tailwind CSS.

Computer Vision

Etant de base un Software Engineer, cela ne m'empêche pas de mener des recherches sur l'IA, plus précisément en vision par ordinateur. J'utilise Python et des bibliothèques comme OpenCV et TensorFlow pour développer des modèles capables de comprendre et interpréter des données visuelles, ouvrant la voie à des applications innovantes.

Portfolio

Computer Vision

"L'IA n'est pas quelque chose de lointain ni de magique. Tous est une question de données et d'algorithmes bien conçus."

1

Pipeline de Prétraitement : Nettoyage et normalisation des datasets via OpenCV pour optimiser l'entraînement des modèles.

2

Détection Faciale : Implémentation de Classificateurs en Cascade pour l'extraction de régions d'intérêt (ROI).

face_preprocessing.py
import os
import cv2
import numpy as np
from tqdm import tqdm

DATA_DIR = "data/raw"
IMG_SIZE = (128, 128)

X, y = [], []
label_map = {}   # nom -> id
label_counter = 0

for person in os.listdir(DATA_DIR):
    person_dir = os.path.join(DATA_DIR, person)
    if not os.path.isdir(person_dir):
        continue

    # Attribuer id de label
    if person not in label_map:
        label_map[person] = label_counter
        label_counter += 1

    files = [os.path.join(person_dir, f) for f in os.listdir(person_dir)
             if f.lower().endswith((".jpg", ".jpeg", ".png"))]

    for img_path in tqdm(files, desc=f"Traitement: {person}"):
        img = cv2.imread(img_path)
        if img is None: 
            continue

        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        # Détection de visage
        detector = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_f.xml")
        faces = detector.detectMultiScale(gray, 1.1, 5)

        if len(faces) == 0:
            continue

        # Extraction ROI (Visage le plus grand)
        x, y0, w, h = sorted(faces, key=lambda b: b[2]*b[3], reverse=True)[0]
        face = gray[y0:y0+h, x:x+w]
        face = cv2.resize(face, IMG_SIZE)
        face = face.astype(np.float32) / 255.0  # Normalisation

        X.append(face[..., np.newaxis])
        y.append(label_map[person])

X = np.stack(X, axis=0)
y = np.array(y, dtype=np.int32)

print("Shape X:", X.shape, "Shape y:", y.shape)

Parlons de votre projet.

Besoin d'une expertise technique ou d'une collaboration innovante ? Je suis à un message de distance.

Écrivez-moi à

sem.kasanga@email.com

Message instantané

Réponse rapide via WhatsApp