<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Umutesi Kelia</title>
    <description>The latest articles on DEV Community by Umutesi Kelia (@umutesi03).</description>
    <link>https://dev.to/umutesi03</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4182289%2Fffa4870e-842b-4c5c-84c2-cf969ae44f20.png</url>
      <title>DEV Community: Umutesi Kelia</title>
      <link>https://dev.to/umutesi03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/umutesi03"/>
    <language>en</language>
    <item>
      <title>LLM Research Blog: The Model That Fits Our Project</title>
      <dc:creator>Umutesi Kelia</dc:creator>
      <pubDate>Mon, 26 Oct 2026 13:44:18 +0000</pubDate>
      <link>https://dev.to/umutesi03/llm-research-blog-the-model-that-fits-our-project-hhg</link>
      <guid>https://dev.to/umutesi03/llm-research-blog-the-model-that-fits-our-project-hhg</guid>
      <description>&lt;h1&gt;
  
  
  LLM Research Blog: The Model That Fits Our Project
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;During our course, we learned about Natural Language Processing (NLP), GPT-2, TinyGPT, Transformers, and other AI concepts. We also studied computer vision and learned that AI can be used in different ways to solve real problems. These lessons made me more interested in understanding how AI models work and how we can use them to build useful applications.&lt;/p&gt;

&lt;p&gt;For my project, I am working on &lt;strong&gt;MiniChefGPT&lt;/strong&gt;, a recipe-generation system. The idea is simple: a user provides the ingredients they have, and the model suggests a meal and explains how to prepare it step by step.&lt;/p&gt;

&lt;p&gt;I chose this idea because sometimes people have ingredients at home but do not know what they can cook with them. I want MiniChefGPT to help people discover meal ideas and make better use of the food they already have.&lt;/p&gt;

&lt;p&gt;However, choosing a model is not just about choosing the biggest one. I need a model that follows instructions, generates understandable recipes, and can run using the resources available to us. Since I want to experiment without paying for an API, I decided to research three open models: Qwen3-4B-Instruct-2507, SmolLM3-3B, and Phi-4-mini-instruct.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The models I researched
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Qwen3-4B-Instruct-2507 — Qwen Team
&lt;/h3&gt;

&lt;p&gt;Qwen3-4B-Instruct-2507 was developed by the Qwen team. It has 4 billion parameters and a native context window of 262,144 tokens. It uses the Apache 2.0 licence, which allows people to use and modify the model under the licence conditions. [1]&lt;/p&gt;

&lt;p&gt;What interests me about this model is its focus on instruction following, reasoning, and text generation. In MiniChefGPT, the user might say, “I have Cassava, fish, spinach, and tomatoes. Suggest one meal and show me how to cook it.”&lt;/p&gt;

&lt;p&gt;The model needs to understand the ingredients and provide a suitable meal with clear steps. It should also follow the requested format instead of giving a long, confusing answer.&lt;/p&gt;

&lt;p&gt;Qwen3-4B-Instruct-2507 looks like a strong candidate for this task. However, its full-precision weights need around 8 GB of storage before accounting for the additional memory needed to run it. A free Google Colab T4 GPU has 16 GB of GPU memory, so the model may be possible to run, but memory use must be tested. Quantization can help reduce the memory requirement.&lt;/p&gt;

&lt;h3&gt;
  
  
  SmolLM3-3B — Hugging Face
&lt;/h3&gt;

&lt;p&gt;SmolLM3-3B was developed by Hugging Face and has 3 billion parameters. Its standard context length is 65,536 tokens, and its licence is Apache 2.0. It is an instruction-oriented model that supports reasoning and multiple languages. [2]&lt;/p&gt;

&lt;p&gt;One reason I considered SmolLM3 is its relatively small size. Since we may have limited computing resources, a smaller model could make experimentation easier.&lt;/p&gt;

&lt;p&gt;For MiniChefGPT, I would test whether it can suggest reasonable meals, organize cooking instructions in the correct order, and avoid adding ingredients that the user does not have. I would also check whether its answers are simple enough for different users to understand.&lt;/p&gt;

&lt;p&gt;However, a smaller model is not automatically better or faster for every task. Its actual speed and recipe quality need to be measured in the same environment as the other candidates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phi-4-mini-instruct — Microsoft
&lt;/h3&gt;

&lt;p&gt;Phi-4-mini-instruct was developed by Microsoft. It has 3.8 billion parameters, supports a context window of up to 128,000 tokens, and is released under the MIT licence. It was designed for instruction following, reasoning, and chat-based applications. [3]&lt;/p&gt;

&lt;p&gt;I included this model because MiniChefGPT needs more than text generation. It needs to understand a request and respond in an organized way.&lt;/p&gt;

&lt;p&gt;For example, if someone provides rice, beans, and vegetables, the model should suggest a suitable meal and explain the preparation steps clearly. It should not ignore the ingredients or produce instructions that are difficult to follow.&lt;/p&gt;

&lt;p&gt;Phi-4-mini-instruct is a useful candidate to test because of its instruction-following design and relatively small parameter count. However, I cannot say it is the best model for recipes without testing it on our actual project.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Comparing the models
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Qwen3-4B-Instruct-2507&lt;/th&gt;
&lt;th&gt;SmolLM3-3B&lt;/th&gt;
&lt;th&gt;Phi-4-mini-instruct&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Creator&lt;/td&gt;
&lt;td&gt;Qwen Team&lt;/td&gt;
&lt;td&gt;Hugging Face&lt;/td&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parameters&lt;/td&gt;
&lt;td&gt;4 billion&lt;/td&gt;
&lt;td&gt;3 billion&lt;/td&gt;
&lt;td&gt;3.8 billion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context window&lt;/td&gt;
&lt;td&gt;262,144 tokens&lt;/td&gt;
&lt;td&gt;65,536 tokens&lt;/td&gt;
&lt;td&gt;128,000 tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Licence&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main strengths&lt;/td&gt;
&lt;td&gt;Instruction following, reasoning, text generation&lt;/td&gt;
&lt;td&gt;Small size, reasoning, multilingual capabilities&lt;/td&gt;
&lt;td&gt;Instruction following, reasoning, chat tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Colab T4&lt;/td&gt;
&lt;td&gt;Test memory; quantization may help&lt;/td&gt;
&lt;td&gt;Worth testing because of its smaller size&lt;/td&gt;
&lt;td&gt;Worth testing; measure actual memory use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The specifications come from the official model documentation. [1][2][3] All three models have public model repositories, so they can be downloaded for local experimentation without relying on a paid text-generation API. Their licences still need to be followed.&lt;/p&gt;

&lt;p&gt;The context window is the amount of text a model can process in a sequence. MiniChefGPT normally needs only a short ingredient list and a recipe, so we do not need the largest context window. More important factors are the quality of the recipe, instruction following, speed, and memory use.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Which ONE model would I choose?
&lt;/h2&gt;

&lt;p&gt;After comparing these models, &lt;strong&gt;I would choose Qwen3-4B-Instruct-2507 for our first implementation and evaluation of MiniChefGPT.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My main reason is its instruction-following design. Our project needs a model that can take ingredients as input and generate a meal suggestion with clear cooking steps. I believe Qwen3-4B-Instruct-2507 is a strong candidate for this kind of instruction-based task.&lt;/p&gt;

&lt;p&gt;Another reason is its Apache 2.0 licence and public model repository. We can download the model and experiment with it locally without paying for each generated response through a hosted API. The public repository does not appear to require accepting a gated model licence, although we should always check the current model card before use.&lt;/p&gt;

&lt;p&gt;The main challenge is running it on a free Google Colab T4 GPU with 16 GB of memory. The model's full-precision weights alone need approximately 8 GB, and the runtime also needs memory for other components. I would first try a memory-efficient setup, such as 4-bit quantization, and check whether the model loads and generates recipes successfully.&lt;/p&gt;

&lt;p&gt;I would not claim that Qwen is the fastest model because I have not benchmarked all three models on the same hardware. To get evidence, I would test the same ingredient lists with each model, measure the time taken to generate a recipe, and record the GPU memory usage. If Qwen cannot run reliably or produces weaker recipes than another candidate, I would need to reconsider the choice based on those results.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. How I will evaluate it
&lt;/h2&gt;

&lt;p&gt;I would test Qwen3-4B-Instruct-2507 using several ingredient lists. For example, I could provide potatoes, eggs, tomatoes, and onions and ask it to suggest one meal with numbered cooking steps.&lt;/p&gt;

&lt;p&gt;I would check whether the model uses the available ingredients, follows the requested format, gives steps in a sensible order, and avoids unnecessary explanations. I would also test unusual combinations to see whether it handles them sensibly instead of inventing an unsuitable recipe.&lt;/p&gt;

&lt;p&gt;Finally, I would measure its response time and GPU memory usage on Colab. These tests will help me understand whether the model is practical for our project, not just whether its technical specifications look good.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Conclusion
&lt;/h2&gt;

&lt;p&gt;Working on MiniChefGPT helps me connect what we learned in our course with a practical idea. Learning about GPT-2, TinyGPT, and Transformers gave me a foundation for understanding how language models generate text. Now, I want to apply that knowledge to a system that can help people with something they do in everyday life.&lt;/p&gt;

&lt;p&gt;My first choice is Qwen3-4B-Instruct-2507 because of its instruction-following capabilities and open licence. However, the final decision should also depend on practical tests, especially recipe quality, generation speed, and whether it runs within the memory limits of a free Colab T4 GPU.&lt;/p&gt;

&lt;p&gt;For me, the goal is not simply to use a large language model. It is to understand it, test its limitations, and use it to build something useful. With MiniChefGPT, I want to turn the ingredients people already have into simple meal ideas they can actually prepare.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Qwen Team. &lt;em&gt;Qwen3-4B-Instruct-2507 Model Card.&lt;/em&gt; &lt;a href="https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507" rel="noopener noreferrer"&gt;https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Hugging Face. &lt;em&gt;SmolLM3-3B Model Card.&lt;/em&gt; &lt;a href="https://huggingface.co/HuggingFaceTB/SmolLM3-3B" rel="noopener noreferrer"&gt;https://huggingface.co/HuggingFaceTB/SmolLM3-3B&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Microsoft. &lt;em&gt;Phi-4-mini-instruct Model Card.&lt;/em&gt; &lt;a href="https://huggingface.co/microsoft/Phi-4-mini-instruct" rel="noopener noreferrer"&gt;https://huggingface.co/microsoft/Phi-4-mini-instruct&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Note: The model specifications and licences are based on the published model documentation. Speed and GPU memory use still need to be measured in our own Colab tests.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>learning</category>
      <category>llm</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>How Does a Computer Actually See an Image? My First Steps into Computer Vision</title>
      <dc:creator>Umutesi Kelia</dc:creator>
      <pubDate>Tue, 13 Oct 2026 13:32:27 +0000</pubDate>
      <link>https://dev.to/umutesi03/how-does-a-computer-actually-see-an-image-my-first-steps-into-computer-vision-2c55</link>
      <guid>https://dev.to/umutesi03/how-does-a-computer-actually-see-an-image-my-first-steps-into-computer-vision-2c55</guid>
      <description>&lt;p&gt;Have you ever looked at a picture and wondered how your brain recognizes what's inside it so quickly?&lt;/p&gt;

&lt;p&gt;Imagine looking at a picture of a bus. You immediately notice its shape, colors, and windows, and your brain says, &lt;em&gt;"That's a bus!"&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;But what happens when we give that same picture to a computer?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does a computer actually see a bus, or does it see something completely different from what we see?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question got me curious. I wanted to understand how a computer goes from processing numbers to identifying objects in an image.&lt;/p&gt;

&lt;p&gt;I didn't want to just run an AI model, watch it draw boxes around objects, and say, &lt;em&gt;"Wow, AI is amazing!"&lt;/em&gt;  I wanted to understand what was happening behind the results.&lt;/p&gt;

&lt;p&gt;So, I started exploring computer vision using Python, experimenting with image pixels, filters, classification, object detection, and segmentation.&lt;/p&gt;

&lt;p&gt;And honestly, the more I learned, the more questions I had.&lt;/p&gt;

&lt;p&gt;I discovered that an image, which looks so simple to us, is represented by numbers inside a computer. Wait... how can numbers represent a bus, a face, or even a tiny detail in a picture? And what happens when we change those numbers?&lt;/p&gt;

&lt;p&gt;Then I started wondering how AI models recognize objects. How can a model identify a bus in one image but struggle with another because of lighting, different angles, or objects being partially hidden?&lt;/p&gt;

&lt;p&gt;And here's another question that caught my attention: &lt;strong&gt;What's the difference between recognizing an object and identifying the exact pixels that belong to it?&lt;/strong&gt; That's where I started exploring the difference between object detection and image segmentation.&lt;/p&gt;

&lt;p&gt;I'm still learning, experimenting, and connecting these concepts. I don't want to know how to run a model; I want to understand &lt;em&gt;why&lt;/em&gt; it works and what happens behind the scenes.&lt;/p&gt;

&lt;p&gt;In this post, I'll share some of what I'm discovering as I explore how computers process images and learn to recognize what's inside them.&lt;/p&gt;

&lt;p&gt;Sometimes, learning something new starts with one simple question you just can't stop thinking about. &lt;/p&gt;

&lt;p&gt;Let's explore it together!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Wait, an image is just numbers?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the first things I explored was how images are represented in Python.&lt;/p&gt;

&lt;p&gt;When we look at a picture, we see colors, people, objects, and backgrounds. But a computer represents a color image using numerical values called pixels.&lt;/p&gt;

&lt;p&gt;Using NumPy, we can inspect those values:&lt;/p&gt;

&lt;p&gt;pixel = img[100, 400]&lt;br&gt;
print(pixel)&lt;/p&gt;

&lt;p&gt;This gives us the RGB values of the pixel at row 100 and column 400.&lt;/p&gt;

&lt;p&gt;RGB means Red, Green, and Blue. Each channel usually has a value between 0 and 255.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;[255, 0, 0]  # Red&lt;br&gt;
[0, 255, 0]  # Green&lt;br&gt;
[0, 0, 255]  # Blue&lt;/p&gt;

&lt;p&gt;When I think about it, it is interesting that something we see as a complete picture can be represented by numbers that we can access and change using code.&lt;/p&gt;

&lt;p&gt;I also explored how to extract a small part of an image:&lt;/p&gt;

&lt;p&gt;patch = img[100:106, 100:106]&lt;/p&gt;

&lt;p&gt;This selects a 6 × 6 section of the image.&lt;/p&gt;

&lt;p&gt;My takeaway: Before trying to understand how AI recognizes an image, I need to understand what an image looks like from the computer's point of view. It starts with data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What happens if we remove one color?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This was another interesting experiment because it showed me that I can change an image by modifying its pixel values.&lt;/p&gt;

&lt;p&gt;no_red = img.copy()&lt;br&gt;
no_red[:, :, 0] = 0&lt;/p&gt;

&lt;p&gt;show(no_red, "No red")&lt;br&gt;
plt.show()&lt;/p&gt;

&lt;p&gt;Let me explain what is happening here.&lt;/p&gt;

&lt;p&gt;First, img.copy() creates a copy of the original image. Then [:, :, 0] selects the red channel, and setting it to zero removes the red contribution from every pixel.&lt;/p&gt;

&lt;p&gt;For example, a white pixel has the values [255, 255, 255]. After removing red, it becomes [0, 255, 255], which is cyan.&lt;/p&gt;

&lt;p&gt;This helped me understand that the colors we see depend on the values stored in the different channels.&lt;/p&gt;

&lt;p&gt;I like experiments like this because instead of only reading a definition, I can change something in the code and understand the effect by looking at the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Image filters: why do we need them?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also explored image filters, including blur, sharpening, and edge detection.&lt;/p&gt;

&lt;p&gt;At first, these might look like simple image effects, but they help us understand how image processing can emphasize or reduce certain features.&lt;/p&gt;

&lt;p&gt;A filter often uses a small matrix called a kernel. The kernel moves across an image and calculates new pixel values using nearby pixels.&lt;/p&gt;

&lt;p&gt;For example, this is a sharpening kernel:&lt;/p&gt;

&lt;p&gt;sharpen = np.array([&lt;br&gt;
    [0, -1, 0],&lt;br&gt;
    [-1, 5, -1],&lt;br&gt;
    [0, -1, 0]&lt;br&gt;
])&lt;/p&gt;

&lt;p&gt;The values in this matrix affect how the output image is calculated. This particular kernel emphasizes differences between a pixel and its neighbors, which can make details appear sharper.&lt;/p&gt;

&lt;p&gt;A blur filter works differently. It averages nearby pixel values, making the image smoother and reducing small details.&lt;/p&gt;

&lt;p&gt;Edge detection helps highlight places where brightness changes, such as the boundaries between objects and their backgrounds.&lt;/p&gt;

&lt;p&gt;What I find interesting is that we can use mathematical operations to make different features of an image easier to see.&lt;/p&gt;

&lt;p&gt;My takeaway: Image processing is not magic. There are operations happening behind the output, and understanding those operations helps me understand the bigger picture of computer vision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Image classification: how does a model guess what it sees?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, I explored image classification using a pretrained YOLO classification model.&lt;/p&gt;

&lt;p&gt;classify(ASSETS / "zidane.jpg")&lt;/p&gt;

&lt;p&gt;Classification means predicting what category an image belongs to. Depending on the model and its training classes, it might predict categories such as a person, an animal, or another object.&lt;/p&gt;

&lt;p&gt;The model gives predictions with confidence scores, but something I want to remember is that a prediction is not automatically correct just because the model produced it.&lt;/p&gt;

&lt;p&gt;We still need to look at the image and ask whether the prediction makes sense.&lt;/p&gt;

&lt;p&gt;This also made me think about how much a model depends on the examples it learned from during training. If the category we want is not represented well in its training data, the prediction may not be what we expect.&lt;/p&gt;

&lt;p&gt;I am beginning to see why learning about models also means learning about their limitations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Object detection: what changes when we change confidence?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Object detection is different from classification. Instead of only predicting a category, a detection model can identify objects and draw bounding boxes around them.&lt;/p&gt;

&lt;p&gt;One experiment I explored was changing the confidence threshold.&lt;/p&gt;

&lt;p&gt;_ = detect(IMAGE_PATH, conf=0.1)&lt;/p&gt;

&lt;p&gt;Then comparing it with:&lt;/p&gt;

&lt;p&gt;_ = detect(IMAGE_PATH, conf=0.9)&lt;/p&gt;

&lt;p&gt;The conf value sets the minimum confidence required for a detection to be kept.&lt;/p&gt;

&lt;p&gt;With a lower threshold, the model can keep more predictions, including uncertain ones. With a higher threshold, it generally keeps fewer predictions, but it can also miss real objects.&lt;/p&gt;

&lt;p&gt;This is where I started thinking beyond just getting an output.&lt;/p&gt;

&lt;p&gt;What if we want a model to detect every possible object? What if false detections are a serious problem? Would we always choose a high confidence threshold?&lt;/p&gt;

&lt;p&gt;I learned that the answer depends on what we are trying to achieve. There is a balance between detecting more objects and trusting the predictions we keep.&lt;/p&gt;

&lt;p&gt;My takeaway: A model's output depends not only on the model itself, but also on the settings we choose and the problem we want to solve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Object detection vs. image segmentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also explored image segmentation, which gave me another way to think about how AI understands images.&lt;/p&gt;

&lt;p&gt;With object detection, a model draws a bounding box around an object. With segmentation, it can identify the pixels that belong to the object, giving us a more detailed outline.&lt;/p&gt;

&lt;p&gt;For example, after running a segmentation model, we can inspect the masks:&lt;/p&gt;

&lt;p&gt;r = segmenter(IMAGE_PATH, conf=0.4, verbose=False)[0]&lt;/p&gt;

&lt;p&gt;if r.masks is not None:&lt;br&gt;
    for mask, c in zip(r.masks.data, r.boxes.cls):&lt;br&gt;
        print(r.names[int(c)], int(mask.sum()), "pixels")&lt;br&gt;
else:&lt;br&gt;
    print("No segmentation masks were found.")&lt;/p&gt;

&lt;p&gt;This code checks whether segmentation masks exist and counts the nonzero values in each mask. The counts represent the mask data at the model's output resolution, not necessarily exact pixel counts in the original image.&lt;/p&gt;

&lt;p&gt;The difference is becoming clearer to me:&lt;/p&gt;

&lt;p&gt;Classification: What category is in the image?&lt;/p&gt;

&lt;p&gt;Object detection: What objects are present, and where are they?&lt;/p&gt;

&lt;p&gt;Segmentation: Which pixels belong to each detected object?&lt;/p&gt;

&lt;p&gt;These tasks may seem similar at first, but they answer different questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. What happens when the image is not perfect?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Something else I want to explore is how well a model performs when an image changes.&lt;/p&gt;

&lt;p&gt;Think about a picture taken in poor lighting, a blurry photo, or an image that has been rotated. As humans, we can sometimes recognize an object even when the image is not perfect. But will a model always recognize it?&lt;/p&gt;

&lt;p&gt;One way to investigate this is to create a blurry version of an image:&lt;/p&gt;

&lt;p&gt;from PIL import ImageFilter&lt;/p&gt;

&lt;p&gt;blurry = original.filter(ImageFilter.GaussianBlur(8))&lt;/p&gt;

&lt;p&gt;Then we can compare the model's predictions on the original image and the blurry version.&lt;/p&gt;

&lt;p&gt;We can also experiment with darker images, lower resolutions, and different orientations.&lt;/p&gt;

&lt;p&gt;I think this is an important part of learning AI because getting a model to work on one image does not mean it will perform equally well in every situation.&lt;/p&gt;

&lt;p&gt;I want to understand not only when a model works, but also when it struggles and why.&lt;/p&gt;

&lt;p&gt;What I am taking from this learning experience&lt;/p&gt;

&lt;p&gt;The biggest thing I am learning is that understanding AI takes more than knowing which library to import or which function to call.&lt;/p&gt;

&lt;p&gt;I need to understand the data going into the model, the operations being performed, the output coming back, and whether that output actually makes sense.&lt;/p&gt;

&lt;p&gt;I am also learning to question results instead of accepting them immediately. If I change a value, what happens? If I change the image, does the prediction change? If the result looks wrong, what could be causing it?&lt;/p&gt;

&lt;p&gt;These are the kinds of questions I want to keep asking as I continue learning.&lt;/p&gt;

&lt;p&gt;I know I still have a lot to learn about computer vision and machine learning, but I am trying to build my understanding step by step rather than rushing through concepts without understanding them.&lt;/p&gt;

&lt;p&gt;What is next for me?&lt;/p&gt;

&lt;p&gt;I want to complete the hands-on exercises, compare the results, and get more comfortable experimenting with the code myself.&lt;/p&gt;

&lt;p&gt;After that, I want to go deeper into how these models work internally and how they learn from data.&lt;/p&gt;

&lt;p&gt;My goal is not just to use AI tools. I want to understand how they work well enough to eventually build things of my own.&lt;/p&gt;

&lt;p&gt;I would love your feedback&lt;/p&gt;

&lt;p&gt;Since I am still learning, I would really appreciate feedback from people with more experience in computer vision and AI.&lt;/p&gt;

&lt;p&gt;What beginner-friendly experiments helped you understand computer vision better? Is there something in this blog that I should explain differently? And what would you recommend I learn next after understanding the basics of pixels, filters, classification, detection, and segmentation?&lt;/p&gt;

&lt;p&gt;I am sharing this to document my learning and improve through feedback. If you are also learning AI, I hope we can learn from each other.&lt;/p&gt;

&lt;p&gt;Thank you for reading! &lt;/p&gt;

</description>
      <category>computervision</category>
      <category>machinelearning</category>
      <category>python</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
