Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update draw_dwpose.py #75

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

thisisvk45
Copy link

Breakdown of the specific changes made to optimize the previous code:

Video Info in One Step: I used get_video_info() to grab the width, height, and fps in one go, avoiding redundant operations.

Parallel Processing: I added ThreadPoolExecutor to handle multiple videos at the same time, speeding up the process.

Progress Bar for Videos: I moved tqdm to track the progress across all videos, making it cleaner and easier to monitor.

Simplified Directory Handling: I used os.makedirs(save_dir, exist_ok=True) to automatically create directories without manually checking.

Unified Resizing Logic: I calculated the render and save dimensions once, then reused them, eliminating repeated resizing steps.

I am a final year undergrad student looking for internships and full time role.

Breakdown of the specific changes made to optimize the previous  code:

1. **Unified Video Info Retrieval**: 
   - Before: The video file was opened twice, once to get the width/height and again to extract frames.
   - Now: `get_video_info()` retrieves width, height, and fps in one step.
   - **Example**:
     ```python
     width, height, fps = get_video_info(video_path)
     ```

2. **Parallel Processing with ThreadPoolExecutor**:
   - Before: Videos were processed sequentially.
   - Now: Multiple videos are processed in parallel using `ThreadPoolExecutor`.
   - **Example**:
     ```python
     with ThreadPoolExecutor(max_workers=args.num_workers) as executor:
         futures = [executor.submit(process_video, video_path, ...)]
     ```

3. **Progress Bar Enhancement**:
   - Before: Progress tracking was done inside the inner loop (for each pose).
   - Now: `tqdm` tracks the overall video processing, giving cleaner progress output.
   - **Example**:
     ```python
     for future in tqdm(futures, total=len(video_mp4_paths), desc="Processing videos"):
     ```

4. **Directory Handling Simplification**:
   - Before: The script manually checked and created directories.
   - Now: `os.makedirs(save_dir, exist_ok=True)` handles directory creation more efficiently.
   - **Example**:
     ```python
     os.makedirs(save_dir, exist_ok=True)
     ```

5. **Removed Redundant Video Resizing**:
   - Before: The video frame resize logic was repeated multiple times.
   - Now: The scaling factor for rendering and saving is calculated once and reused.
   - **Example**:
     ```python
     k_render = 1024 / min(width, height)
     h_render, w_render = int(k_render * height // 2 * 2), int(k_render * width // 2 * 2)
     ```

## I am a final year undergrad student looking for internships and full time role.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant