Skip to content

Latest commit

 

History

History
233 lines (182 loc) · 12.6 KB

README.md

File metadata and controls

233 lines (182 loc) · 12.6 KB

ANIMALCARE

Empowering Insights, Enhancing Animal Welfare

MIT License last-commit repo-top-language repo-language-count


🔗 Table of Contents


📍 Overview

AnimalCare is an innovative open-source project designed to enhance animal welfare through advanced video analysis and AI-driven insights. By processing video inputs to monitor and assess animal behavior, the project aids veterinarians, researchers, and animal behaviorists in making informed health and welfare decisions. Key features include object segmentation, behavior analysis, and health assessment tools, making AnimalCare essential for professionals dedicated to improving animal care practices.


👾 Features

Feature Summary
⚙️ Architecture
  • Utilizes Jupyter notebooks (sam2_final.ipynb) for data processing and analysis.
  • Python scripts like main1.py and BehaviorAnalysis/gptCall.py handle specific functionalities such as video processing and AI-driven analysis.
  • Relies on a structured requirements.txt for managing dependencies, ensuring consistent environments across development and production.
🔩 Code Quality
  • Code is modularized into scripts and notebooks for specific tasks.
  • Uses Python extensively, evident from .py files and Jupyter notebooks.
  • Adheres to dependency management practices with multiple requirements.txt files.
📄 Documentation
  • Documentation includes installation and usage commands, facilitating easy setup and operation.
  • Primary languages for documentation are Python and Markdown, with interactive notebooks also serving as documentation and demonstration tools.
  • Documentation spread across various file types (ipynb, txt, py), indicating a comprehensive approach.
🔌 Integrations
  • Integrates with AI services like OpenAI for enhanced data analysis (BehaviorAnalysis/gptCall.py).
  • Employs various Python libraries (numpy, pandas, matplotlib) for data handling and visualization.
  • Uses opencv-python for image processing tasks within the BehaviorAnalysis module.
🧩 Modularity
  • Project structure includes separate modules for behavior analysis and main application logic.
  • Scripts like main1.py and BehaviorAnalysis/gptCall.py indicate a clear separation of concerns.
  • Reusable components such as Jupyter notebooks for iterative testing and presentation.
🧪 Testing
  • Testing procedures are outlined but specific details or frameworks are not mentioned in the provided data.
  • Usage of interactive notebooks may also support live testing and debugging.
  • Dependency on consistent environments suggests a focus on integration testing.
⚡️ Performance
  • Uses asynchronous libraries like aiohttp and aiosignal to enhance performance.
  • Performance considerations are evident in the handling of video and image data.
  • Efficient data processing with Python's scientific stack (numpy, scipy).
🛡️ Security
  • Dependency management through requirements.txt helps mitigate risks associated with library vulnerabilities.
  • Use of secure API calls in BehaviorAnalysis/gptCall.py for interacting with external AI services.
  • Uses security practices like verification in the provided files.

📁 Project Structure

└── AnimalCare/
    ├── BehaviorAnalysis
    │   ├── demo1.mp4
    │   ├── final_segmented_video
    │   ├── gptCall.py
    │   └── requirements.txt
    ├── README.md
    ├── main1.py
    ├── requirements.txt
    └── sam2_final.ipynb

📂 Project Index

ANIMALCARE/
__root__
sam2_final.ipynb - The file `sam2_final.ipynb` serves as a Jupyter notebook within the project, likely functioning as a final or consolidated version of analysis or computation designated by the "final" in its name
- This notebook is integral to the project's data processing or analysis phase, providing a platform for executing Python code in an interactive environment which is beneficial for iterative testing, data visualization, or presenting statistical findings.

Given its placement and naming convention, sam2_final.ipynb is possibly a culmination of previous work or experiments documented in other notebooks or scripts within the project
- It might contain finalized scripts, key insights, or results that are critical for the project's objectives
- This could include data manipulation, visualization, model training, or result interpretation tasks that are essential for the project's subsequent stages or for delivering the project's end goals.

The notebook's role in the broader architecture is likely central to the analytical or processing component of the project, interfacing with data inputs and generating outputs that could be used by other parts of the project for further development or reporting.

requirements.txt - The requirements.txt file serves a crucial role in the architecture of the entire codebase by specifying the exact versions of external libraries and packages that the project depends on
- This file ensures that the development, testing, and production environments are consistent, preventing discrepancies that could arise from version mismatches
- It lists various Python libraries such as aiohttp, aiosignal, and anyio, among others, which are essential for the project's asynchronous operations and other functionalities
- By locking down specific versions, the file aids in maintaining the stability and compatibility of the application across different setups and deployments
- This approach minimizes potential conflicts and aids in the smooth operation and maintenance of the software system as a whole.
main1.py - Processes video input to extract frames, applies a deep learning model for object segmentation, and refines segmentation based on user-defined points
- Outputs include visualized segmentation masks and a final video compilation, showcasing the segmented objects across frames for both analysis and presentation purposes.
BehaviorAnalysis
gptCall.py - BehaviorAnalysis/gptCall.py processes video input to extract frames, encode them in base64, and utilizes an OpenAI client to generate comprehensive animal behavior analyses based on selected video frames
- The script aims to assist animal behaviorists by providing detailed observations and health assessments from visual data.
requirements.txt - Serves as the dependency manifest for the BehaviorAnalysis module, specifying essential libraries such as opencv-python for image processing and openai for leveraging AI capabilities
- These dependencies are crucial for the module's functionality, which likely involves image analysis and AI-driven data interpretation within the broader project architecture.


🚀 Getting Started

☑️ Prerequisites

Before getting started with AnimalCare, ensure your runtime environment meets the following requirements:

  • Programming Language: Error detecting primary_language: {'ipynb': 1, 'txt': 2, 'py': 2}
  • Package Manager: Pip

⚙️ Installation

Install AnimalCare using one of the following methods:

Build from source:

  1. Clone the AnimalCare repository:
❯ git clone https://github.com/sandeepsalwan1/AnimalCare
  1. Navigate to the project directory:
cd AnimalCare
  1. Install the project dependencies:

Using pip  

echo 'INSERT-INSTALL-COMMAND-HERE'

🤖 Usage

Run AnimalCare using the following command: Using pip  

echo 'INSERT-RUN-COMMAND-HERE'

🧪 Testing

Run the test suite using the following command: Using pip  

echo 'INSERT-TEST-COMMAND-HERE'

📌 Project Roadmap

  • Task 1: Complete front+backend.
  • Task 2: Enhance chatbot.
  • Task 3: Expand frontend.

🔰 Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/sandeepsalwan1/AnimalCare
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


🎗 License

AnimalCare is released under the MIT License. For more details, please refer to the LICENSE file.