Here is little help but yet you will need to override template apart from this and also will need little changes in your code as per your requirement,
$_helper = $this->helper('Magento\Catalog\Helper\Output');
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$category = $objectManager->get('Magento\Framework\Registry')->registry('current_category');
$childcategories = $category->getChildrenCategories();
foreach($childcategories as $child)
$cat = $objectManager->create('Magento\Catalog\Model\Category')->load($child->getId());
if ($_imgUrl = $cat->getImageUrl())
$_imgHtml = '<div class="category-image"><img src="' . $_imgUrl . '" alt="' . $block->escapeHtml($cat->getName()) . '" title="' . $block->escapeHtml($cat->getName()) . '" class="image" /></div>';
$_imgHtml = $_helper->categoryAttribute($cat, $_imgHtml, 'image');
/* @escapeNotVerified */ echo $_imgHtml;
I have added above code in
vendor/magento/module-catalog/view/frontend/templates/category/products.phtml for testing purpose. Strongly do not recommend to change core files that was just testing purpose.
You will need to override file and then needs to check if category is parent/top level only then above code gets executed else not.
Also currently I have not added product count but with little code you can explore that too.
Hope this helps!